如何使用包含数组数组的方法?

时间:2017-11-24 11:28:50

标签: javascript

我正在使用JavaScript,并希望检查数组中是否存在元素。

以下是一个例子:

var array =[[1,5,6],[2,3],[5,8,9]];

6

中如何检查例如array

2 个答案:

答案 0 :(得分:2)

let exists;

array.forEach(x => {
  if (x.includes(6)) exists = true; 
});

答案 1 :(得分:0)

如果您需要,可以使用可重复使用的功能。请在jsFiddle

上试试
var array =[[1,5,6],[2,3],[5,8,9]];

function checkAvailability(arr, val) {
  return arr.some(function(arrVal) {
    return arrVal.includes(val);
  });
}

checkAvailability(array, 6); // true
checkAvailability(array, 12) // false

请阅读Array.some()的<{3}};

提示:

  

在第5版的ECMA-262标准中添加了一些();因此   它可能不存在于标准的所有实现中。您可以   通过在开头插入以下代码来解决这个问题   你的脚本,允许在实现中使用some()   原生支持它。该算法正好是指定的算法   ECMA-262,第5版,假设Object和TypeError有它们的   原始值和fun.call评估原始值   Function.prototype.call()。

填充工具:

// Production steps of ECMA-262, Edition 5, 15.4.4.17
// Reference: http://es5.github.io/#x15.4.4.17
if (!Array.prototype.some) {
  Array.prototype.some = function(fun/*, thisArg*/) {
    'use strict';

    if (this == null) {
      throw new TypeError('Array.prototype.some called on null or undefined');
    }

    if (typeof fun !== 'function') {
      throw new TypeError();
    }

    var t = Object(this);
    var len = t.length >>> 0;

    var thisArg = arguments.length >= 2 ? arguments[1] : void 0;
    for (var i = 0; i < len; i++) {
      if (i in t && fun.call(thisArg, t[i], i, t)) {
        return true;
      }
    }

    return false;
  };
}