您好,登錄后才能下訂單哦!
這篇文章主要介紹“Js之怎么移除Array數(shù)組中指定元素”,在日常操作中,相信很多人在Js之怎么移除Array數(shù)組中指定元素問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Js之怎么移除Array數(shù)組中指定元素”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!
首先需要找到元素的下標(biāo):
var array = [0,1,2,3,4,5]; var index = array.indexOf(5);
使用splice函數(shù)進(jìn)行移除:
if (index > -1) { array.splice(index, 1); }
indexOf()
方法可返回某個指定的字符串值在字符串中首次出現(xiàn)的位置。
splice
函數(shù)的第二個參數(shù)指刪除的數(shù)目。
splice
直接修改原數(shù)組,并把刪除的所有元素以另一個新數(shù)組的方式返回。
JavaScript中Array的length屬性非常有特點(diǎn)一一它不是只讀的。因此,通過設(shè)置這個屬性可以從數(shù)組的末尾移除項或添加新項,請看下面例子:
var colors = ["red", "blue", "grey"]; //創(chuàng)建一個包含3個字符串的數(shù)組 colors.length = 2; console.log(colors[2]); //undefined
var arr = [1, 2, 3, 4]; delete arr[0]; console.log(arr); //[undefined, 2, 3, 4]
可以看出來,delete刪除之后數(shù)組長度不變,只是被刪除元素被置為undefined了。
var colors = ["red", "blue", "grey"]; var item = colors.pop(); console.log(item); //"grey" console.log(colors.length); //2
在調(diào)用Pop方法時,數(shù)組返回最后一項,即”grey”,數(shù)組的元素也僅剩兩項。
var colors = ["red", "blue", "grey"]; var item = colors.shift(); console.log(item); //"red" console.log(colors.length); //2
隊列數(shù)據(jù)結(jié)構(gòu)的訪問規(guī)則是FIFO(先進(jìn)先出),隊列在列表的末端添加項,從列表的前端移除項,使用shift方法,它能夠移除數(shù)組中的第一個項并返回該項,并且數(shù)組的長度減1。
var colors = ["red", "blue", "grey"]; var item = colors.splice(0, 1); console.log(item); //"red" console.log(colors); //["blue", "grey"]
所謂的迭代方法就是用循環(huán)迭代數(shù)組元素發(fā)現(xiàn)符合要刪除的項則刪除,用的最多的地方可能是數(shù)組中的元素為對象的時候,根據(jù)對象的屬性例如ID等等來刪除數(shù)組元素。
forEach
var colors = ["red", "blue", "grey"]; colors.forEach(function(item, index, arr) { if(item == "red") { arr.splice(index, 1); } });
filter
var colors = ["red", "blue", "grey"]; colors = colors.filter(function(item) { return item != "red" }); console.log(colors); //["blue", "grey"]
Array.prototype.remove = function(dx) { if(isNaN(dx) || dx > this.length){ return false; } for(var i = 0,n = 0;i < this.length; i++) { if(this[i] != this[dx]) { this[n++] = this[i]; } } this.length -= 1; }; var colors = ["red", "blue", "grey"]; colors.remove(1); console.log(colors); //["red", "grey"]
在此把刪除方法添加給了Array的原型對象,則在此環(huán)境中的所有Array對象都可以使用該方法。
盡管可以這么做,但是我們不推薦在產(chǎn)品化的程序中來修改原生對象的原型。道理很簡單,如果因某個實(shí)現(xiàn)中缺少某個方法,就在原生對象的原型中添加這個方法,那么當(dāng)在另一個支持該方法的實(shí)現(xiàn)中運(yùn)行代碼時,就可能導(dǎo)致命名沖突。而且這樣做可能會意外的導(dǎo)致重寫原生方法。
到此,關(guān)于“Js之怎么移除Array數(shù)組中指定元素”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。