日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

数组的相关操作方法

發布時間:2025/7/14 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数组的相关操作方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

var array = ["a","b","c"];

console.log(array.toString());//a,b,c

console.log(array.valueOf());//["a", "b", "c"]

console.log(array);//["a", "b", "c"]

join方法可以將數組中的元素以特定的字符連接起來

console.log(array.join(""));//abc

console.log(array.join("-"));//a-b-c

pop方法會移除數組中的最后一個元素并將該元素返回,原數組改為移除最后一個元素后的數組

console.log(array.pop());//c

unshift方法會在數組的前面添加元素,可以同時接收多個參數,用逗號隔開,例如"a","b",并返回新數組的長度

console.log(array.unshift("d"));//4

shift方法會移除數組中的第一個元素并將其返回

console.log(array.shift());//a

?

通過shift方法和push方法可以實現隊列的行為,shift用于從數組中的前面刪除元素,而push用于從數組后面添加元素。同理,unshiftpop也可以實現,unshift用于從數組前面添加,pop用于從數組后面刪除。

如果想實現棧的行為,也可以很方便的實現。用push方法從數組后面添加,同時用pop方法從數組后面刪除,從而實現棧的行為,用shiftunshift也可以實現。

?

?

自己實現一個concat()方法,看這個方法就知道concat的實現原理了

var array = ["1","3","2","6","4"];

var array2 = ["a","b","c"];

Array.prototype.concatByMyself=function(array){

????for (var i = 0; i < array.length; i++) {

????????this.push(array[i]);

????}

return this;

?};

console.log(array.concatByMyself(array2));//["1", "3", "2", "6", "4", "a", "b", "c"]

?

slice方法,我們可以理解為切片方法,就是將數組按我們的要求切成一段,但我們應該注意,這個方法不會改變原數組,不是真的把數組切成一段一段的。

?

slice可以接受一個或兩個參數,第一個參數為處理的起始位置,第二個可選,為處理的結束位置。如果起始位置參數值為1,則是從數組的第二個元素開始處理(數組下標從零開始計算),第二個參數如果缺省,則直接處理到數組的最后,如果有值,則處理到該值的前一個元素,比如傳入的是4,則處理到3,即數組的第四個元素。

var array = ["1","3","2","6","4"];

console.log(array.slice(1));//["3", "2", "6", "4"]

console.log(array.slice(1,4));//["3", "2", "6"]

?

如果slice傳入的參數時負數怎么辦呢,則按照參數值加數組長度進行處理,如果是slice(-4,-2);數組長度為5,則結果和slice(3,1)相同。

?

再來看看最為強大的一個方法 splice()方法:

?

直接來看代碼運行結果:

var array = ["1","3","2","6","4"];

console.log(array.splice(1,2)); //["3", "2"]

console.log(array);//["1", "6", "4"]

傳入兩個參數時,第一個則為處理的起始位置,第二個參數則為需要處理元素的個數,這時候這個方法會刪除處理的元素,比如這里從數組中第二個元素開始(傳入參數為1,則對應數組下標為1的元素,即數組的第二個元素),處理兩個元素(第二個參數為處理元素個數),然后返回被處理的元素,原數組已經改變。

?

?

console.log(array.splice(1,0,"g","h")); //[]

console.log(array); //["1", "g", "h", "3", "2", "6", "4"]

大家可能已經猜到了為什么是這個結果,我們先看前兩個參數,從數組的下標為1的元素開始處理,處理0個元素,然后將g h插入在下標為1 的元素后面,所以出現了這樣的結果

?

那如果沒有傳入0怎么辦呢,來看看運行代碼后的結果:

console.log(array.splice(1,"g","h"));[]

console.log(array);["1", "h", "3", "2", "6", "4"]

這個時候就會將g當成要處理元素的個數,當然這個是不能轉換為數值的(如果能轉換為數值,比如"0",就會按0來處理),所以就按0來處理了,然后將第三個參數插入得到這樣的結果。

?

console.log(array.splice(1,2,"g","h"));//["3", "2"]

console.log(array);//["1", "g", "h", "6", "4"]

這種情況下為什么得到這個結果相信大家就明白了,先按兩個參數時候處理,然后將后面的參數全部插入處理的開始位置后面。

?

數組還有兩個查找的方法:indexOf() ?lastIndexOf();

var array = ["1","3","2","6","4"];

console.log(array.indexOf("3"));//1

3在數組中的下標是1,所以返回1

那調用lastIndexOf()方法會得到什么結果呢:

?

var array = ["1","2","3","2","4"];

console.log(array.lastIndexOf("2"));//3

這個方法會從數組后面開始查找,返回查找到的第一個元素的下標。

?

如果沒有找到,這兩個方法都會返回-1

var array = ["1","2","3","2","4"];

console.log(array.indexOf("a")); //-1

console.log(array.lastIndexOf("a")); //-1

?

注意這兩個方法匹配時都是使用全等進行比較,如果是下面這樣:

var array = ["1","2","3",2,"4"];

console.log(array.lastIndexOf("2"));//1

則返回1,是因為字符串的"2"與數值2是不能全等的,它們的類型不同,所以不匹配;

?

數組還有一些迭代方法,用于處理數組中的每一個元素。

every() filter() forEach() map() some(),這些方法都會對數組中的每一項進行處理。并且都不會修改原數組。

?

every(),some()都返回一個布爾值,every():當對數組中的每一項進行處理都返回true,則最后這個方法返回true,否則返回false;some()只要有一項返回true,則返回true,否則返回false

?

這些方法的用法都相同:

var array = ["1","3","2","6","4"];

array.filter(function(item,index,array){

return (item>2);//["6", "4"]

})

console.log(array.filter(function(item,index,array){

????return (array[index]>3);//["6", "4"]

}));

item即為數組中的每一個元素,index即為下標,array即為該數組

?

再來介紹最后兩個方法:reduce() ?, ?reduceRight();

reduce從數組前面開始處理,而reduceRight則相反;

var array = ["1","3","2","6","4"];

var array2 = [1,2,3,4];

console.log(array.reduce(function(prev,cur,index,array){

????return prev + cur;

}));//13264

console.log(array2.reduce(function(prev,cur,index,array){

????return prev + cur;

}));//10

?

轉載于:https://www.cnblogs.com/luxueping/p/5672632.html

總結

以上是生活随笔為你收集整理的数组的相关操作方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 中国男女全黄大片 | 免费一级一片 | 国产后入清纯学生妹 | 亚洲永久无码精品 | 欧美一区二区三区四区五区六区 | 午夜精品久久久久久久99老熟妇 | 黄色录像片子 | 欧美精品四区 | 丝瓜av| 日韩不卡视频一区二区 | 青在线视频 | 国模私拍视频在线 | 女性向片在线观看 | 99爱这里只有精品 | 中文在线第一页 | 91在线观看免费高清 | 日韩欧美一区二区免费 | 无码精品久久久久久久 | 亚洲欧洲在线观看 | 日产欧产va高清 | 视频二区欧美 | av男人的天堂在线 | 日本xxxx18高清hd | 伊人一区二区三区 | 国产精品99无码一区二区视频 | 国产在线www | 无码人妻av一区二区三区波多野 | 精品国产欧美一区二区 | 日韩一级高清 | 亚洲影视一区二区 | 情五月| 丁香花电影高清在线阅读免费 | 国内一区二区三区 | 青青草av | 人人干天天操 | 亚洲欧美v| 黄a在线观看 | 蜜桃综合 | 欧美色图30p | 96久久精品 | 亚洲黄视频 | 女同hd系列中文字幕 | 一级黄色片网站 | 少妇在线视频 | 1000部做爰免费视频 | 国产嫩草影院久久久久 | 欧美成人午夜77777 | 日本精品久久久 | 一级黄色大片视频 | 日本强好片久久久久久aaa | 九色在线观看 | 国产精品免费看片 | 91蜜桃在线 | 男女插插插视频 | 国产中文字幕乱人伦在线观看 | 国产色视频 | 3d毛片 | 亚洲国产精品视频 | 免费黄视频在线观看 | 久久久高清免费视频 | 日韩一级黄 | 一级在线免费观看 | 国产96在线 | 亚洲 | 日韩成人av一区 | 狂野欧美性猛交xxxx777 | 深爱五月网 | 91蝌蚪| 女人的天堂网站 | 日本中文字幕网站 | 亚洲精选一区 | 欧美性插插 | 日韩国产欧美在线观看 | 亚洲一区二区三区久久 | 2018av在线| 疯狂做受xxxx高潮人妖 | 乱短篇艳辣500篇h文最新章节 | 欧美片在线观看 | 免费在线看黄色 | 成人精品视频一区二区 | 中国1级毛片 | 久久久久久麻豆 | 免费看色 | 看av网站| 91av爱爱| 久久亚洲熟女cc98cm | 四虎视频在线 | 操操操操操操操操操 | 一曲二曲三曲在线观看中文字幕动漫 | 久久精品免费在线 | 美女精品一区二区 | 福利姬在线播放 | 欧美性爱精品一区 | 日日操狠狠操 | 揄拍成人国产精品视频 | 欧洲激情网 | 久久九| 日韩激情综合网 | 在线精品福利 | 亚洲一区二区三区黄色 |