js中刪除陣列元素的方法總結。
阿新 • • 發佈:2018-12-19
子曰:“學而時習之,不亦說乎?”
雖然我覺得這裡的習字應該理解為實踐練習,而不是複習,但是這裡權當我理解錯了吧o(╯□╰)o。
今天就整理一下js中刪除陣列元素的方法,包括原生API和自定義API。
原生API:
- 刪除陣列最後一個元素,arr.pop(),並返回該元素,對原陣列有影響。
- 刪除陣列第一個元素,shift(),並返回該元素,對原陣列有影響。
- 刪除從陣列start下標開始,往後count個元素。 splice(start, count),返回刪除元素/陣列,對原陣列有影響。
{splice的完整用法應該是 splice(start,delCount, item1,item2…),即刪除指定元素後,新增一些新元素,如果不寫新元素,則為刪除效果}
自定義API:
4.通過給Array物件的原型物件prototype新增一個新方法來實現。原理是找到傳入下標/元素位置後,讓後面的陣列元素覆蓋前面的陣列元素,最後陣列長度減1.
/** *刪除陣列指定下標或指定元素。 */ Array.prototype.remove = function (obj) { for (var i = 0; i < this.length; i++) {//遍歷陣列。 var temp = this[i]; if (!isNaN(obj)) {//判斷傳入引數是下標數字還是元素。是下標數字,就將temp賦值為i;有個bug,如果傳遞的元素是‘1234’這樣字串形式的數字,就無法刪除。 temp = i; } if (temp == obj) {//當遍歷到傳入的下標/元素位置時,進入下面迴圈。 for (var j = i; j < this.length; j++) {//將下標為i之後的元素,往前移動。這樣就覆蓋了該下標。最後記得陣列長度減1. this[j] = this[j + 1]; } this.length = this.length - 1; } } } var arr = ['jude', 'wangwang', '1234', '通知製品', { uname: 'tom', score: 500 }] var str = '1234'; console.log(arr); arr.remove(2); arr.remove('jude') console.log(arr);