84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
splice移除會一直更換數組,更換下標,所以我之前記住的下標沒用。
先刪除下標大的再刪除下標小的
把陣列換成對象,使用delete方法刪除,下標就不會變了
數組的map方法 剔除指定的索引位置的元素 新產生一個陣列
或直接filter方法
可以試一下,新建一個新的數組,然後循環你要做修改的那個數組,如果下標不是你要刪的那個數,那就把這個位置上的元素push到你的新的數組裡,如果下標是你要刪除的那個數,直接continue跳出循環這樣循環結束之後,新的數組就是你需要的數組,再把它賦值給舊數組就好了
產生新數組的話:
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)
先刪除下標大的再刪除下標小的
把陣列換成對象,使用delete方法刪除,下標就不會變了
數組的map方法 剔除指定的索引位置的元素 新產生一個陣列
或直接filter方法
可以試一下,新建一個新的數組,然後循環你要做修改的那個數組,如果下標不是你要刪的那個數,那就把這個位置上的元素push到你的新的數組裡,如果下標是你要刪除的那個數,直接continue跳出循環
這樣循環結束之後,新的數組就是你需要的數組,再把它賦值給舊數組就好了
產生新數組的話:
不產生新數組: