搜尋

首頁  >  問答  >  主體

javascript - 如何去除數組裡的幾個值,只提供該數組的下標的話

splice移除會一直更換數組,更換下標,所以我之前記住的下標沒用。

巴扎黑巴扎黑2712 天前931

全部回覆(5)我來回復

  • 阿神

    阿神2017-06-30 10:01:33

    先刪除下標大的再刪除下標小的

    回覆
    0
  • 代言

    代言2017-06-30 10:01:33

    把陣列換成對象,使用delete方法刪除,下標就不會變了

    回覆
    0
  • 漂亮男人

    漂亮男人2017-06-30 10:01:33

    數組的map方法 剔除指定的索引位置的元素 新產生一個陣列

    或直接filter方法

    回覆
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-06-30 10:01:33

    可以試一下,新建一個新的數組,然後循環你要做修改的那個數組,如果下標不是你要刪的那個數,那就把這個位置上的元素push到你的新的數組裡,如果下標是你要刪除的那個數,直接continue跳出循環
    這樣循環結束之後,新的數組就是你需要的數組,再把它賦值給舊數組就好了

    回覆
    0
  • 学习ing

    学习ing2017-06-30 10:01:33

    產生新數組的話:

    arr = [1,2,3,4,5,6,7]
    removes = [1,3,5]
    arr = arr.filter(function(value, index) { 
        return removes.indexOf(index) < 0
    });

    不產生新數組:

    arr = [1,2,3,4,5,6,7]
    removes = [1,3,5]
    Array.prototype.remove = function(removes){
        removes.sort(function(a, b) {
            return a - b;
        }).reverse().forEach(function(value){this.splice(value, 1)
       }.bind(this)
    )};
    arr.remove(removes)

    回覆
    0
  • 取消回覆