js在原陣列上移除特定元素的各種演算法

2021-10-04 18:27:46 字數 1253 閱讀 4252

分享一道牛客網上的小題目

移除陣列 arr 中的所有值與 item 相等的元素,直接在給定的 arr 陣列上進行操作,並將結果返回

測試樣例:removewithoutcopy([1, 2, 2, 3, 4, 2, 2], 2);

我的答案:

function removewithoutcopy(arr, item) 

return arr;

}

解析:先判斷陣列的第乙個元素是否與 item 相等,如果是則向陣列尾部複製該元素,隨後不管判斷是對是錯,都將第乙個元素刪除掉。重複迴圈此過程 arr.length 次,確保每個元素都掃瞄一遍。

持續判斷陣列元素是否為 item 直到否則前進一步

function removewithoutcopy(arr, item) 

} return arr;

}

這個解法的作者有點小錯,我稍改了一下,也是乙個好方法。迴圈 arr.length 次,每次都找和 item 相同的元素下標,然後利用 splice 刪除(如果下標結果為-1則不刪除)

function removewithoutcopy(arr, item) 

return arr;

}

這個方法和上乙個方法有點像,也是持續尋找和 item 相同的元素的下標,當 flag 結果為 false 時,持續終止。

function removewithoutcopy(arr, item)  else 

} return arr;

}

逐個檢查陣列元素是否等於 item 等於則刪除(此方法算是最符合人一開始思考的思路了吧),因為當符合條件減掉乙個元素時,後面的元素都會前移,因此需要 i 減 1,以便下次迴圈再次檢查此位置的元素(也就是上一輪下標為 i +1 因為元素被刪除而往前移下標變成了 i 的那個元素)

function removewithoutcopy(arr, item) 

}return arr;

}

倒著來逐個檢查陣列元素,不用考慮陣列元素刪除後導致下標錯位的問題

function removewithoutcopy(arr, item) 

return arr;

}

好了,分享完畢

希望你我都有所收穫~ yes!

移除陣列中的元素(操作原陣列)

題目 移除陣列 arr 中的所有值與 item 相等的元素,直接在給定的 arr 陣列上進行操作,並將結果返回 輸入 1,2,3,4,2 2 輸出 1,3,4 使用splice 刪除與item相同的值並把陣列索引回退乙個值 i function removewithoutcopy arr,item ...

移除陣列中的元素 JS

移除陣列 arr 中的所有值與 item 相等的元素,直接在給定的 arr 陣列上進行操作,並將結果返回 示例1 1,2,2,3,4,2,2 2 1,3,4 functionremovewithoutcopy arr,item returnarr splice index,len,item 注釋 該...

JAVA陣列中移除特定元素並求出陣列的長度

今天做基礎演算法題的時候,遇到讓把乙個int型的陣列中指定的數字移除,得到新陣列的長度。乍一想,陣列裡的數是不能刪除的,所以我想了很多種複雜的計算方法,但是結果都不對。後來在網上找了乙個簡潔的 感覺非常受益,趕緊記錄下來。下面是我學習後寫的演算法 public static int removeel...