我有一个由三个数组组成的数组。
我有一个值(数组,' [7,5]')我想通过数组检查。
https://jsfiddle.net/qx4wLf4f/6/
var arrays = [];
var arrayOne = [ [1,3], [2,3], [2,4] ];
var arrayTwo = [ [7,6], [7,5], [7,4] ];
var arrayThree = [ [3,3], [3,2], [2,2] ];
arrays.push( arrayOne, arrayTwo, arrayThree );
function checkArraysForValue( val ){
if( !$.isArray(val) ){
$('#result').html('Not Array');
return false;
}
var found = 'not found';
arrays.forEach(function( item, index ){
if( item.indexOf( val ) > -1 ){
found = 'did find';
}
});
$('#result').html(found);
}
checkArraysForValue( [7,5] );
答案 0 :(得分:2)
针对您的具体情况,只需JSON.stringify
和indexOf
即可
var isPresent = JSON.stringify( arrays ).indexOf( JSON.stringify( val ) ) != -1;
<强>演示强>
var arrays = [];
var arrayOne = [ [1,3], [2,3], [2,4] ];
var arrayTwo = [ [7,6], [7,5], [7,4] ];
var arrayThree = [ [3,3], [3,2], [2,2] ];
arrays.push( arrayOne, arrayTwo, arrayThree );
function checkArraysForValue( val )
{
//console.log( JSON.stringify( arrays ) );
//console.log( JSON.stringify( val ) );
return JSON.stringify( arrays ).indexOf( JSON.stringify( val ) ) != -1 ? "Found" : "Not Found";
}
console.log(checkArraysForValue( [7,5] ));
&#13;
答案 1 :(得分:0)
function isArrayIdentical(arr1, arr2){
if(arr1.length !== arr2.length)
return false;
for(var i = arr1.length; i--;){
if(arr1[i] !== arr2[i])
return false;
}
return true;
}
这是您需要使用的功能,我已经为您下面的问题的实施解决方案提供了一个小提琴。 https://jsfiddle.net/2r4y9mr9/
基本上,你也可以将你的样本字符串化,以便在答案中执行字符串匹配,但是如果&#34; 1&#34;那么解决方案将不正确。和1在您的考虑中有所不同。
答案 2 :(得分:0)
array.forEach()
并不像你想象的那样工作。我的jsFiddle在这里开始使用这种方法。我用this解决了您的问题,但效率不高。
var arrays = [];
var arrayOne = [
[1, 3],
[2, 3],
[2, 4]
];
var arrayTwo = [
[7, 6],
[7, 5],
[7, 4]
];
var arrayThree = [
[3, 3],
[3, 2],
[2, 2]
];
arrays.push(arrayOne, arrayTwo, arrayThree);
function isEqual(arr1, arr2) {
if (arr1.length !== arr2.length)
return false;
for (var i = arr1.length; i--;) {
if (arr1[i] !== arr2[i])
return false;
}
return true;
}
function checkArraysForValue(val) {
if (!$.isArray(val)) {
$('#result').html('Not Array');
return false;
}
var val = val;
var found = 'not found';
for(var i = 0; i < arrays.length; i++){
for(var j = 0; j < arrays[i].length; j++){
if(isEqual(arrays[i][j],val)){
found = 'did found';
}
}
}
$('#result').html(found);
}