Javascript in_array

时间:2016-05-21 15:22:03

标签: javascript

在php中,这是一个很好的方式,询问是一个值是几个选项之一

if( in_array($needle, [1,325,'something else']) ){
   //do your thing
}

但是在javascript的世界里有一个等价物。这并不需要编写定制函数,例如:

function inArray(needle, haystack) {
   var length = haystack.length;
   for(var i = 0; i < length; i++) {
      if(typeof haystack[i] == 'object') {
         if(arrayCompare(haystack[i], needle)) return true;
      } else {
         if(haystack[i] == needle) return true;
      }
   }
   return false;
}
function arrayCompare(a1, a2) {
    if (a1.length != a2.length) return false;
    var length = a2.length;
    for (var i = 0; i < length; i++) {
        if (a1[i] !== a2[i]) return false;
    }
    return true;
}

以上js定制函数的使用案例

if( inArray( somvar, [1,2,'something else']) ){
   do the javascript thing
}

来自评论 这是最准确的答案:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/includes

2 个答案:

答案 0 :(得分:1)

您可以使用Array.prototype.find()

var data = ['Lorem', 'Ipsum', 'Sit']

var foundSit = data.find(function(item){
   return item == 'Sit';
});

答案 1 :(得分:0)

var needle = 325;

if( [1,325,'something else'].indexOf(needle) !== -1 ){
   //do your thing
};