我正在使用JavaScript,并希望检查数组中是否存在元素。
以下是一个例子:
var array =[[1,5,6],[2,3],[5,8,9]];
6
array
答案 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;
};
}