4

我在循环遍历多维数组和删除特定元素数组时遇到问题。我的多维数组看起来有点像这样:

myArray = [["Tom", "161"], ["Dick", "29"], ["Harry", "46"]];

因此,如果我有数字 29。循环遍历此数组并删除第二个元素为 29 的数组元素的最有效方法是什么?即[“迪克”,“29”]

4

4 回答 4

10
var myArray = [["Tom", "161"], ["Dick", "29"], ["Harry", "46"]];
var myNewArray = myArray.filter(function(item){ return item[1] != 29 })  

.filter 使用本机代码循环遍历您的数组。建造一个新阵列当然可能比仅仅从旧阵列中切出一部分来进行测试更昂贵。

于 2013-07-11T19:52:18.837 回答
2
myArray = [["Tom", "161"], ["Dick", "29"], ["Harry", "46"]];
for(var i = 0; i <= myArray.length - 1; i++){
    if(myArray[i][1] == "29"){
        myArray[i].splice(0,2);
    }
}
console.log(myArray);

// returns [ [ 'Tom', '161' ], [], [ 'Harry', '46' ] ]
于 2013-07-11T19:58:42.170 回答
0

brbcoding的回答删除了数组元素的内容,但不删除。这是一种解决方法:

myArray = [["Tom", "161"], ["Dick", "29"], ["Harry", "46"]];
document.getElementById("a").innerHTML = myArray;
for(var i = 0; i <= myArray.length - 1; i++){
   if(myArray[i][1] == "29"){
       myArray.splice(i--,1);
}
}
document.getElementById("b").innerHTML = myArray;
console.log(myArray);

https://jsfiddle.net/tmzshopping/dfdveazk/

拼接删除一行(参数中的 1),您可以通过将 1 替换为 2 来删除 2 行。 i-- 减少数组的长度。

于 2018-01-27T13:29:49.720 回答
0
   array_name = [[1,2,3],[],['Hi','hello','world']] 
    let temp = []
    array_name.forEach(element => {
      if (element != '' || `enter condition here`) {
        temp.push(element)
      }
    });
    
    array_name = temp; // array_name = [  [1,2,3], ['Hi','hello','world'] ] 
于 2020-07-27T14:22:03.053 回答