刪除陣列中多個不連續的陣列元素的正確姿勢

2022-08-31 22:30:17 字數 1162 閱讀 6054

var arr = ['a', 'a', 'b', 'c', 'd', 'a', 'a', 'e', 'g', 'a', 'f'];

arr.foreach(function(key, index) )

//["a", "b", "c", "d", "a", "e", "g", "f"]

只要相鄰的『 a』 元素, 都沒被刪除, splice不但可以刪除原素本身, 還同時可以減少陣列長度( 就是抹去一切痕跡),

這樣導致後續的陣列元素會代替已經刪除的元素的位置, 但是迴圈是按照陣列的下標按順序刪除, 這樣就會漏掉遷移的元素。arr.foreach(function(key, index) )

//["b", "c", "d", "e", "g", "f"]

可以看到這是我們想要的結果, 因為delete這個方法刪除元素時並不會刪除本身的位置, 會有個『 undefind』 來代替著元素,

這樣我們的迴圈佇列的順序就正常了, 但是這樣陣列長度是不會有變化的, 這個方法就看自己的需求了var newarr = arr.filter(function(key) )

//["b", "c", "d", "e", "g", "f"]

一樣的結果, 我們的思路就是既然刪除是因為我們想要得到符合條件的陣列, 那我們直接去篩選符合條件的新陣列就解決了!

實際中我們面對的業務資料都是比較複雜的,所以下面的稍微複雜一點

需求:1 我們需要刪除掉checked為"icon-chosen"的所有父項,以及父項中的子項orderdetails。

2 父項中有多個子項,但如果有乙個子項checked是"icon-choose",不是"icon-chosen",那麼父項也需要保留下來不被刪除。

//上面的資料儲存在productlist中,我們看到只有陣列中第乙個父元素的第二個子元素checked是"icon-choose"

php中刪除陣列元素

users array 1 張三 2 李四 3 王五 print r users echo unset users 2 print r users echo student array 1 mike 2 tom 3 jerry 4 lucy 5 lili array splice student,3...

如何刪除陣列中的元素

php中的陣列要新增元素非常簡單,直接用賦值就行了,陣列的key會自動增加,但是要刪除陣列中的元素呢?你想過嗎?是不是很少遇到?我近日在處理乙個購物籃程式時遇到了要刪除陣列中元素的問題,尋找了半天,終於找到了刪除陣列的方法,其實很簡單.開始我參照一篇文章 字串陣列,刪除陣列元素 oso中有 中的方法...

刪除陣列中相同的元素

問題描述 給n個int型的整數,存放到陣列中,要求刪除其中相同的元素。如 存放1 2 2 3 4,則刪除後為1 3 4.存放 1 2 2 2 3 4 5,則刪除後為1 2 3 4 5.演算法分析 一共n個資料,從第乙個起挨個與後面的資料進行比較,若發現相同的元素,則依次向前移動,然後表長減1,隨後再...