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

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

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

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

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

length

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

var colors = ["red", "blue", "grey"]; ? //創(chuàng)建一個包含3個字符串的數(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]

可以看出來,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)致重寫原生方法。

總結(jié)

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    bootstrap laydate日期組件使用詳解

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

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

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

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

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

最新評論