如何使用另一个数组的值指定的索引删除数组的所有值?

时间:2018-03-19 12:36:24

标签: javascript jquery arrays for-loop

简单的问题,但我无法克服它......

我有两个数组:

var arrayA = [67.98, "-", 91.77, "-", "-", 8.09];
var arrayB = [3, 4, 9, 1, 12, 77];

因此,我需要删除arrayB中所有值"-"中具有值arrayA的索引的值。在这种情况下,arrayB的结果应为:

arrayB = [3, 9, 77]

非常感谢。

2 个答案:

答案 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