【问题标题】:removing element of outerarray according to value of innerarray in 2D array根据二维数组中内部数组的值删除外部数组的元素
【发布时间】:2013-12-30 17:45:43
【问题描述】:

我在 JS 中有一个数组数组

例如 大批[ 数组['1','2','3','0'], 数组['2','3','4','1'], 数组['3','4','5','0'], ]

innerarray 有许多元素,其中一个元素被设置为其删除值,“1”表示已删除,“0”表示未删除。

在上面的数组中,它是innerarray的元素3,所以outerarray的中间元素被设置为删除。

通过 ajax 调用更新 mysql 数据库后,我想从外部数组中删除所有在内部数组中设置为已删除的元素。

如何根据innerarray中某个元素的值从outerarray中移除?

我尝试了一个 for 循环,但似乎没有工作

  for(var i=0;i<outerarry.length;i++){
      if(outerarray[i][3]=='1'){
        outerarray.splice(i,1);
      }
   }

有什么想法吗?

【问题讨论】:

    标签: jquery multidimensional-array splice


    【解决方案1】:

    反向遍历数组,这样数组就不会在每次拼接时重新索引。

    var arr = [['1','2','3','0'],['2','3','4','1'],['3','4','5','0'],['4','4','5','1'],['5','4','5','0'],['6','4','5','1'],['7','4','5','0']];
    
    var arrLength = arr.length;
    while(arrLength--){
        if(arr[arrLength][3] == 1){
           arr.splice(arrLength,1);
        }
    }
    console.log(arr);
    

    JS 小提琴: http://jsfiddle.net/L5T9k/

    【讨论】:

    • @BarryWatts 请查看我更新的解决方案,最后一个在删除多个元素时效果不佳。因为它会导致数组重新索引。
    猜你喜欢
    • 2021-06-14
    • 1970-01-01
    • 2011-05-26
    • 2016-04-20
    • 1970-01-01
    • 2016-04-28
    • 2017-03-20
    • 1970-01-01
    相关资源
    最近更新 更多