一煤篙、數(shù)組的遍歷
? 1.遍歷:一次訪問數(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 a=[];
? ? ? ? ? a['name']='哦里';
? ? ? ? ? a['age']='25';
? ? ? ? ? a['sex']='男';
? ? ? ? ? console.log(a);
關(guān)聯(lián)數(shù)組沒有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 wan=[];
? ? ? ? wan['sex']='女';
? ? ? ? wan['age']='3歲';
? ? ? ? wan['height']='80';
? ? ? ? console.log(wan);
? ? ? ? for(var sb in wan){
? ? ? ? ? ? ? console.log(wan[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適用于把字母拼接為單詞喘帚,把單詞拼接為句子,拼出來的是字符串
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ù)開始截取到末尾
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的位置處開始刪除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的位置處開始刪除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的位置處開始刪除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無法實(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));
!