var array = [[2,3,4],[4,5,6],[2,3,9],[7,8,1]];
var number = 3;
如果我有这个嵌套数组和这个变量,我该如何返回存在数字的子数组的索引。所以最终的结果应该是1和3。
答案 0 :(得分:1)
尝试:
array.reduce((acc, subArr, i) => {
if (!subArr.includes(number)) {
acc.push(i);
}
return acc;
}, [])
答案 1 :(得分:1)
使用Array.prototype.forEach()
和Array.prototype.indexOf()
函数的解决方案:
var arr = [[2,3,4],[4,5,6],[2,3,9],[7,8,1]],
number = 3,
result = [];
arr.forEach(function(v,i){
if (v.indexOf(number) === -1) result.push(i);
});
console.log(result);
答案 2 :(得分:0)
function X(a){
var r = [];
for(var i = o ; i < a.length; i++)
for(var j = o ; j < a[i].length; i++)
if(a[i][j] === number)
r.push(i);
return r;
}
我认为应该这样做。我刚刚在这里写了所以可能有一些语法错误
答案 3 :(得分:0)
由于问题超级不一致,如果您希望做的子数组的索引具有该数字,请执行以下操作:
var foundIndices = [];
for(var y = 0;y < array.length; y++) {
for(var x = 0;x < array[y].length; x++) {
if(array[y][x] == number) {
foundIndices[foundIndices.length] = y;
}
}
}
否则,请执行以下操作:
var foundIndices = [];
var found = false;
for(var y = 0;y < array.length; y++) {
found = false;
for(var x = 0;x < array[y].length; x++) {
if(array[y][x] == number) {
found = true;
}
}
if(found == false) {
foundIndices[foundIndices.length] = y;
}
}