有没有办法将 readline 中的用户输入与数组的元素进行比较?
Is there a way to compare User's input from the `readline` with the elements of an Array?
如何比较 input
和数组元素?我想要做的是读取用户的输入,如果此输入与 Arrays 元素之一相同,它应该调用 console.log()
。但我找不到让它工作的方法。
有人可以帮忙吗?
编辑:如果您需要更多信息,可提供 Github link。
https://github.com/TheRadioDept/technical-question
编辑:找到比较的方法,其:
rl.question('Please enter the translation key ', (key) => {
if (keys.includes(key)){
console.log(data.map(point=>point.translations.deu.official));
}
现在我想把它从 console.log(data.map(point=>point.translations.deu.official));
改成
console.log(data.map(point=>point.translations.key));
。但是输出变成了undefined
。有办法解决这个问题吗?
var keys = ['cym','deu','fra','hrv','ita','jpn','nld','por','rus','spa'];
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
rl.question('Please enter the translation key ', (key) => {
if (key.match(/^keys[0]?$/i)){
console.log(data.map(point=>point.translations.deu.official));
}
else {
console.log("Translation key is not supported. ");
}
rl.close();
我看到你正在使用正则表达式进行匹配,你应该在处理字符串时使用。如果您有一个包含您的答案的数组,要查找某个元素是否存在,您必须始终遍历该数组。
for (element in array) { // compare against your element }
但是,所有现代编程语言都会为您提供一个函数来为您执行该循环。在 JavaScript 中是 Array.prototype.includes()
在您的代码中使用它
rl.question('Please enter the translation key ', (key) => {
if (keys.include(key)){
console.log(data.map(point=>point.translations.deu.official));
}
在此处阅读更多相关信息:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/includes
如何比较 input
和数组元素?我想要做的是读取用户的输入,如果此输入与 Arrays 元素之一相同,它应该调用 console.log()
。但我找不到让它工作的方法。
有人可以帮忙吗?
编辑:如果您需要更多信息,可提供 Github link。 https://github.com/TheRadioDept/technical-question
编辑:找到比较的方法,其:
rl.question('Please enter the translation key ', (key) => {
if (keys.includes(key)){
console.log(data.map(point=>point.translations.deu.official));
}
现在我想把它从 console.log(data.map(point=>point.translations.deu.official));
改成
console.log(data.map(point=>point.translations.key));
。但是输出变成了undefined
。有办法解决这个问题吗?
var keys = ['cym','deu','fra','hrv','ita','jpn','nld','por','rus','spa'];
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
rl.question('Please enter the translation key ', (key) => {
if (key.match(/^keys[0]?$/i)){
console.log(data.map(point=>point.translations.deu.official));
}
else {
console.log("Translation key is not supported. ");
}
rl.close();
我看到你正在使用正则表达式进行匹配,你应该在处理字符串时使用。如果您有一个包含您的答案的数组,要查找某个元素是否存在,您必须始终遍历该数组。
for (element in array) { // compare against your element }
但是,所有现代编程语言都会为您提供一个函数来为您执行该循环。在 JavaScript 中是 Array.prototype.includes()
在您的代码中使用它
rl.question('Please enter the translation key ', (key) => {
if (keys.include(key)){
console.log(data.map(point=>point.translations.deu.official));
}
在此处阅读更多相关信息:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/includes