私はJavaScriptを使用しており、要素が配列の配列に存在するかどうかを確認したいと考えています。ここでどのように使用すると、配列の配列を含むメソッドですか?
は一例です。たとえば6
のチェックがarray
に存在するどのよう
var array =[[1,5,6],[2,3],[5,8,9]];
?
私はJavaScriptを使用しており、要素が配列の配列に存在するかどうかを確認したいと考えています。ここでどのように使用すると、配列の配列を含むメソッドですか?
は一例です。たとえば6
のチェックがarray
に存在するどのよう
var array =[[1,5,6],[2,3],[5,8,9]];
?
let exists;
array.forEach(x => {
if (x.includes(6)) exists = true;
});
再利用可能な機能を使用することができます。 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()
ためdocumentationをお読みください。
ヒント:
一部()第5版でECMA-262標準に添加しました。そのようなものとしては、 標準のすべての実装では存在しないかもしれません。 は、 スクリプトの先頭に次のコードを挿入し、 が本来サポートしていない実装でsome()を使用できるようにして、この問題を回避することができます。このアルゴリズムは、ObjectおよびTypeErrorの元の値が であり、fun.callが元の値の Function.prototype.call()であると仮定すると、 ECMA-262第5版で指定されたアルゴリズムとまったく同じです。
ポリフィル:
// 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;
};
}
は 'VAR存在= array.some(X => x.includes(6))とすることができる' – Satpal
は、それは私の問題を解決していただきありがとうございます。 – John