//使用函数checkValue使用underscoreJS _.each在数组中查找值。 //返回true,否则返回false。
var helloArr = ['bonjour', 'hello', 'hola'];
var checkValue = function(arg) {
_.each(helloArr, function(helloArr, index) {
if (arg[index] === index) {
return true;
}
return false;
});
};
alert(checkValue("hola"));
答案 0 :(得分:1)
代码的问题是,_.each
将遍历数组的所有元素并调用传递给它的函数。您将无法得出结论,因为您没有从中返回任何值(除非您保持_.each
之外的状态。)
请注意,您传递给_.each
的函数返回的值不会在任何地方使用,也不会以任何方式影响程序的进程。
但是,您可以将_.some
用作备用,就像这样
var checkValue = function(arg) {
return _.some(helloArr, function(currentString) {
return arg === currentString;
});
};
但是,更好的解决方案将是_.contains
用于此目的。你可以像这样使用它
var checkValue = function(arg) {
return _.contains(helloArr, arg);
};
但是,由于数组中只有字符串,最佳解决方案将使用Array.prototype.indexOf
,就像这样
var checkValue = function(arg) {
return helloArr.indexOf(arg) !== -1;
};
答案 1 :(得分:0)
试试这个:
var helloArr = ['bonjour', 'hello', 'hola'];
var checkValue = function(arr, val) {
_(arr).each(function(value) {
if (value == val)
{return console.log(true);}
else {return console.log(false);}
});
};
console.log(checkValue(helloArr,'hello'));
/* Output
false
true
false*/