JS删除指定索引的数组

在做项目的时候一般都会有增删数据的时候,特别是列表的时候,比如在选中一些列表,然后删除掉选中的数据

var arr = [1,2,3,4,5,6,7]       //源数据

var delIndex = [3,2,4]          //需要删除源数据的所有索引
//通俗的解释就是:把arr中的第3,2,4项都删除了

//一般删除数据我们都想到的方法是 splice(),然后我们理所当然的这样写了

for (var i=0;i<delIndex.length;i++) {
    arr.splice(delIndex[i],1)
}
//你觉得这样做好像是全部删除了,但是你最后打印一下arr,你会发现不是那么一回事的,至于原因,应该想两分钟就明白的,打字解释实在麻烦

//解决的方案,利用一个小技巧,我们应该是从后往前删除
//首先给需要删除的索引的数组排序,从小到大

delIndex.sort(function(a,b){
    return a > b
})

var len = delIndex.lenght

while (len--) {
    arr.splice(delIndex[len])
}

//最后打印一下,就完全正确了

猜你喜欢

转载自blog.csdn.net/qq_36800701/article/details/80214766
今日推荐