配列が2次元配列の内部にあるかどうかを知りたい。配列が2次元配列にあるかどうかを調べる
これは私が試したものです:
var x=[1,2];
var y=[[1,1],[1,2],[2,2],[3,3]];
y.includes(x); //should return true
配列が2次元配列の内部にあるかどうかを知りたい。配列が2次元配列にあるかどうかを調べる
これは私が試したものです:
var x=[1,2];
var y=[[1,1],[1,2],[2,2],[3,3]];
y.includes(x); //should return true
あなたが連鎖配列方法でこれを行うことができます!
var ar = [
[1,1],[1,2],[2,2],[3,3]
];
hasDuplicates(ar, [1,"1"]); //false
hasDuplicates(ar, [1,1]); //true
//Use some to determine at least 1 inner array matches
function hasDuplicates(array, valueToCheck) {
return array.some(function(a, i) {
//Check each inner arrays index, and verify that it equals on the same index of the array we want to check
return a.every(function(ax, ix) {
return valueToCheck[ix] === ax; //triple equals for equality!
})
});
}
いくつかのすべての良い使用法は、かなりの間にそれらの2つを見ていない:) – fubbe
あなたはハッシュを作成することができます。
var ar = [
[1,1],[1,2],[2,2],[3,3]
];
var hash = {};
for(var i = 0 ; i < ar.length; i += 1) {
hash[ar[i]] = i;
}
var val = [1,2];
if(hash.hasOwnProperty(val)) {
document.write(hash[val]);
}
' ["1" 、 "2"] 'と' [1,2] ' - この場合は重要かどうかはわかりません。いずれにせよ+1。 – tymeJV
内側の配列のすべての値が整数で、文字列ではないと仮定すると、これは素晴らしい解決策です! – hackerrdave
2つの配列が同じに見えるにもかかわらず...彼らは同じ配列リファレンスではありません。 '[1,2]!== [1,2]'であるため、オブジェクトを直接オブジェクトと比較することはできません – charlietfl
ライブラリを使いたい場合、underscoreJsには '_.findIndex(y、x)'があります。 "y"の中の "http://underscorejs.org/#findIndex"の位置に置くか、 '_.findIndex(y、x)> == 0'を使って真理テストをすることができます – haxxxton