_.each在数组中查找值返回true或false。使用下划线js

时间:2015-03-09 03:44:49

标签: javascript arrays underscore.js

//使用函数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"));

2 个答案:

答案 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*/