简单的问题,但我无法克服它......
我有两个数组:
var arrayA = [67.98, "-", 91.77, "-", "-", 8.09];
var arrayB = [3, 4, 9, 1, 12, 77];
因此,我需要删除arrayB中所有值"-"
中具有值arrayA
的索引的值。在这种情况下,arrayB的结果应为:
arrayB = [3, 9, 77]
非常感谢。
答案 0 :(得分:7)
在Array.filter()
上使用arrayB
,并保留arrayA
中各自项目不是短划线的项目:
var arrayA = [67.98, "-", 91.77, "-", "-", 8.09];
var arrayB = [3, 4, 9, 1, 12, 77];
var result = arrayB.filter(function(_, i) {
return arrayA[i] !== '-';
});
console.log(result);
答案 1 :(得分:1)
var arrayA = [67.98, "-", 91.77, "-", "-", 8.09];
var arrayB = [3, 4, 9, 1, 12, 77];
for (var i = arrayB.length - 1; i >= 0; i--) {
if (arrayA[i] == "-") {
arrayB.splice(i, 1);
}
}
console.log(arrayB);
请参阅:Looping through array and removing items, without breaking for loop