數(shù)組遍歷、API、排序

一、數(shù)組的遍歷

? 1.遍歷:一次訪問(wèn)數(shù)組中的每個(gè)元素

? ? ? ? ? for(var i=0;i<arr.length;i++>

? ? ? ? ? ? console.log(arr[i]);//輸出數(shù)組中的當(dāng)前元素

? ? ? ? ? }

2.索引數(shù)組和關(guān)聯(lián)數(shù)組/hash數(shù)組

索引數(shù)組:下標(biāo)為數(shù)字的數(shù)組


關(guān)聯(lián)數(shù)組/hash數(shù)組:下標(biāo)不為數(shù)字的數(shù)組


? ? ? ? ? var zse=[];

? ? ? ? ? zse['name']='張三';

? ? ? ? ? zse['age']='18';

? ? ? ? ? zse['sex']='boy';

? ? ? ? ? console.log(zse);


關(guān)聯(lián)數(shù)組沒(méi)有l(wèi)ength屬性

關(guān)聯(lián)數(shù)組不能用for遍歷,要用for....in遍歷

? ? ? ? ? for(var key in hash){

? ? ? ? ? ? ? //key代表關(guān)鍵字,即下標(biāo)

? ? ? ? ? ? ? //hash代表數(shù)組名

? ? ? ? ? }

如:var wangzhesheng=[];

? ? ? ? wangzhesheng['sex']='女';

? ? ? ? wangzhesheng['age']='3歲';

? ? ? ? wangzhesheng['height']='151cm';

? ? ? ? console.log(wangzhesheng);

? ? ? ? for(var sb in wangzhesheng){

? ? ? ? ? ? ? console.log(wangzhesheng[sb]);

? ? ? ? }

二、數(shù)組API:

1.Storing

將數(shù)組中每個(gè)元素都轉(zhuǎn)為字符串,再用逗號(hào)分隔: var str=String(arr);

如:var arr=[2,45,4,65,684,8,34];

var str=String(arr);//轉(zhuǎn)換字符串

? ? ? ? ? ? console.log(str);

? ? ? ? 2.join

將數(shù)組中每個(gè)元素都轉(zhuǎn)為字符串,再用自定義下標(biāo)連接每個(gè)元素:

var str=arr.join("自定義連接符")

強(qiáng)調(diào):如果省略參數(shù),默認(rèn)等效于String

如:var arr=[2,45,4,65,684,8,34];

? ? ? ? ? ? ? var str=arr.join('-');

? ? ? ? ? ? ? console.log(str);

? ? ? ? 3.concat

拼接

? ? ? ? ? var arr=[2,45,4,65,684,8,34];

? ? ? ? ? var arr2=['+','-','*','/'];

? ? ? ? ? var str=arr.concat(arr2);

? ? ? ? ? console.log(str)

注:join和concat的區(qū)別

join適用于把字母拼接為單詞,把單詞拼接為句子,拼出來(lái)的是字符串

concat是給數(shù)組后面拼接新元素,或把兩個(gè)數(shù)組拼接,拼出的還是數(shù)組

? ? ? ? 4.slice

截取

如:var arr=[2,45,4,65,684,8,34];

var str=arr.slice(1,5);//含頭不含尾

var str=arr.slice(1);//如果省略第二個(gè)參數(shù)默認(rèn)從第一個(gè)參數(shù)開(kāi)始截取到末尾

var str=arr.slice();//如果兩個(gè)參數(shù)都省略相當(dāng)于復(fù)制原字符串

var str=arr.slice(-4,-2);//支持負(fù)數(shù)參數(shù),小數(shù)在前,大數(shù)在后

? ? ? ? 5.splice

刪除插入替換

1).刪除

? ? ? ? ? ? var arr=[2,45,4,65,684,8,34];

var str=arr.splice(1,3);//表示從下標(biāo)為1的位置處開(kāi)始刪除3個(gè)

? ? ? ? ? ? console.log(str);

? ? ? ? ? ? console.log(arr);

2).插入

? ? ? ? ? ? var arr=[2,45,4,65,684,8,34];

var str=arr.splice(1,0,'ai','he');//從下標(biāo)為1的位置處開(kāi)始刪除0個(gè)并插入新元素

? ? ? ? ? ? console.log(str);

? ? ? ? ? ? console.log(arr);

3).替換

? ? ? ? ? ? var arr=[2,45,4,65,684,8,34];

var str=arr.splice(1,2,'ai','he');//從下標(biāo)為1的位置處開(kāi)始刪除2個(gè)并替換新元素

? ? ? ? ? ? console.log(str);

? ? ? ? ? ? console.log(arr);


? ? ? ? 6.reverse

翻轉(zhuǎn)

? ? ? ? ? var arr=[1,2,3,4,5];

? ? ? ? ? var str=arr.reverse();

console.log(str);//輸出[5,4,3,2,1]

...還有幾種,明天講

三、數(shù)組排序

? ? ? ? 1.arr.sort();

? ? ? ? ? var arr=[2,4,3,5,1];

? var str=arr.sort();

console.log(str);//輸出[1,2,3,4,5]


2.像以下這種函數(shù)用arr.sort無(wú)法實(shí)現(xiàn)排序,這時(shí)候就需要用到比較器函數(shù)

? var arr=[1,12,22,13,23,33,3,2];

? ? ? ? ? function cmp(a,b){

//return a-b;//升序排列

return b-a;//降序排列

? }

? console.log(arr.sort(cmp));

!

圖片發(fā)自簡(jiǎn)書(shū)App

End!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容