欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Js之如何移除Array/數(shù)組中指定元素

 更新時(shí)間:2023年03月06日 10:26:15   作者:idomyway  
這篇文章主要介紹了Js之如何移除Array/數(shù)組中指定元素問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Js 移除Array數(shù)組中指定元素

首先需要找到元素的下標(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()方法可返回某個(gè)指定的字符串值在字符串中首次出現(xiàn)的位置。
  • splice函數(shù)的第二個(gè)參數(shù)指刪除的數(shù)目。
  • splice直接修改原數(shù)組,并把刪除的所有元素以另一個(gè)新數(shù)組的方式返回。

Js 數(shù)組刪除元素 避坑

length

JavaScript中Array的length屬性非常有特點(diǎn)一一它不是只讀的。因此,通過(guò)設(shè)置這個(gè)屬性可以從數(shù)組的末尾移除項(xiàng)或添加新項(xiàng),請(qǐng)看下面例子:

var colors = ["red", "blue", "grey"]; ? //創(chuàng)建一個(gè)包含3個(gè)字符串的數(shù)組
colors.length = 2;
console.log(colors[2]); ?//undefined

delete

var arr = [1, 2, 3, 4];
delete arr[0];
console.log(arr); ? //[undefined, 2, 3, 4]

可以看出來(lái),delete刪除之后數(shù)組長(zhǎng)度不變,只是被刪除元素被置為undefined了。

棧方法

var colors = ["red", "blue", "grey"];
var item = colors.pop();
console.log(item); ? ? ?//"grey"
console.log(colors.length); ? ?//2

在調(diào)用Pop方法時(shí),數(shù)組返回最后一項(xiàng),即”grey”,數(shù)組的元素也僅剩兩項(xiàng)。

隊(duì)列方法

var colors = ["red", "blue", "grey"];
var item = colors.shift();
console.log(item); ? ? ?//"red"
console.log(colors.length); ? ?//2

隊(duì)列數(shù)據(jù)結(jié)構(gòu)的訪問(wèn)規(guī)則是FIFO(先進(jìn)先出),隊(duì)列在列表的末端添加項(xiàng),從列表的前端移除項(xiàng),使用shift方法,它能夠移除數(shù)組中的第一個(gè)項(xiàng)并返回該項(xiàng),并且數(shù)組的長(zhǎng)度減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)符合要?jiǎng)h除的項(xiàng)則刪除,用的最多的地方可能是數(shù)組中的元素為對(duì)象的時(shí)候,根據(jù)對(duì)象的屬性例如ID等等來(lái)刪除數(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的原型對(duì)象,則在此環(huán)境中的所有Array對(duì)象都可以使用該方法。

盡管可以這么做,但是我們不推薦在產(chǎn)品化的程序中來(lái)修改原生對(duì)象的原型。道理很簡(jiǎn)單,如果因某個(gè)實(shí)現(xiàn)中缺少某個(gè)方法,就在原生對(duì)象的原型中添加這個(gè)方法,那么當(dāng)在另一個(gè)支持該方法的實(shí)現(xiàn)中運(yùn)行代碼時(shí),就可能導(dǎo)致命名沖突。而且這樣做可能會(huì)意外的導(dǎo)致重寫原生方法。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • JavaScript–Apple設(shè)備檢測(cè)示例代碼

    JavaScript–Apple設(shè)備檢測(cè)示例代碼

    JavaScript–Apple設(shè)備檢測(cè)示例代碼。需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助
    2013-11-11
  • Javascript動(dòng)手實(shí)現(xiàn)call,bind,apply的代碼詳解

    Javascript動(dòng)手實(shí)現(xiàn)call,bind,apply的代碼詳解

    這篇文章主要為大家詳細(xì)介紹了Javascript動(dòng)手實(shí)現(xiàn)call,bind,apply的代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-02-02
  • JS button按鈕實(shí)現(xiàn)submit按鈕提交效果

    JS button按鈕實(shí)現(xiàn)submit按鈕提交效果

    今天在使用表單是同時(shí)使用POST更新、刪除操作。然而form表單的 submit 且一旦提交則全部提交,所以想到的實(shí)現(xiàn)方法就是 使用button實(shí)現(xiàn),怎么實(shí)現(xiàn)呢?下面小編給大家分享JS button按鈕實(shí)現(xiàn)submit按鈕提交效果,感興趣的朋友參考下吧
    2016-11-11
  • js之如何篩選出兩個(gè)數(shù)組相同的值

    js之如何篩選出兩個(gè)數(shù)組相同的值

    這篇文章主要介紹了js之如何篩選出兩個(gè)數(shù)組相同的值問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • javascript實(shí)現(xiàn)貪吃蛇游戲(娛樂(lè)版)

    javascript實(shí)現(xiàn)貪吃蛇游戲(娛樂(lè)版)

    這篇文章主要為大家詳細(xì)介紹了javascript實(shí)現(xiàn)貪吃蛇,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-08-08
  • 下雪了 javascript實(shí)現(xiàn)雪花飛舞

    下雪了 javascript實(shí)現(xiàn)雪花飛舞

    下雪了,這篇文章主要介紹了javascript實(shí)現(xiàn)雪花飛舞,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-04-04
  • JavaScript實(shí)現(xiàn)視頻轉(zhuǎn)GIF的示例代碼

    JavaScript實(shí)現(xiàn)視頻轉(zhuǎn)GIF的示例代碼

    這篇文章主要介紹了JavaScript實(shí)現(xiàn)視頻轉(zhuǎn)GIF,本文一共會(huì)按照以下三步去實(shí)現(xiàn)一個(gè)視頻轉(zhuǎn)?GIF?功能,解封裝視頻,從視頻文件中獲取視頻幀,解碼視頻幀,獲取幀圖像信息,拼裝幀圖像信息,生成?GIF,需要的朋友可以參考下
    2024-03-03
  • bootstrap laydate日期組件使用詳解

    bootstrap laydate日期組件使用詳解

    這篇文章主要為大家詳細(xì)介紹了bootstrap laydate日期組件使用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • jser必看的破解javascript各種加密的反向思維方法

    jser必看的破解javascript各種加密的反向思維方法

    才發(fā)現(xiàn)的破解javascript各種加密的反向思維方法,大家有好的方法都跟帖啊最近發(fā)現(xiàn)了一個(gè)代碼,加密了5層左右,我將破解到最后一步,而且不用javascript解密程序
    2007-04-04
  • canvas實(shí)現(xiàn)圖像截取功能

    canvas實(shí)現(xiàn)圖像截取功能

    這篇文章主要為大家詳細(xì)介紹了canvas實(shí)現(xiàn)圖像截取功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-02-02

最新評(píng)論