_.数组中的每个查找值都返回 true 或 false.使用下划线 JS

_.each find value in array return true or false. using underscore js

本文关键字:false true JS 下划线 返回 数组 查找      更新时间:2023-09-26

//使用函数 checkValue 在数组中查找值 使用下划线 _.each.返回真,否则返回假。

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"));

代码的问题在于,_.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;
};

试试这个:

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