1吧碾、創(chuàng)建一個(gè)數(shù)組
方法一:創(chuàng)建一個(gè)長(zhǎng)度為零的數(shù)組
?var arr = new Array();
方法二:創(chuàng)建一個(gè)長(zhǎng)度為5的數(shù)組
var arr = new Array(5);
alert(arr.length); ????????-----------得到5
方法三:創(chuàng)建一個(gè)指定內(nèi)容的數(shù)組
var arr = new Array(“張三”,”李四”,”王五”,”馬六”,”馮七”,”趙八”,”魏九”);
方法四:簡(jiǎn)單寫(xiě)法
var arr = [“張三”,”李四”,”王五”,”馬六”,”馮七”,”趙八”,”魏九”];
方法五:創(chuàng)建空的數(shù)組
var arr = [];
2调鲸、訪問(wèn)數(shù)組
數(shù)組的名稱加下標(biāo)(下標(biāo)從0開(kāi)始)
例:var arr = (1,2,3,4,5,6,);
alert(arr[2]);--------------------->得到3
3槽卫、設(shè)置數(shù)組的值
例:arr[4] =“排髂”封恰;---------->把數(shù)組中第四個(gè)值換成 牛
4耘分、添加內(nèi)容
例:arr[4] =“花”葱弟;
arr[5] =“好”壹店;
alert(arr);----------------->會(huì)將數(shù)組第5、6個(gè)的值寫(xiě)成”花”,”好”
注:javascript是一種若類型的編程語(yǔ)言芝加,可以動(dòng)態(tài)的改變數(shù)組的長(zhǎng)度
5硅卢、數(shù)組的遍歷
5.1、for循環(huán)遍歷(把內(nèi)容一個(gè)個(gè)輸出)
for(var i = 0;i < arr.length;i++){
document.write(arr[i]);
}
5.2、for in循環(huán)遍歷
var arr=[];
arr[1000] =“沤埽”;
for(var ?k ?in ?arr){
console.log(arr[k]);
}
注:在特長(zhǎng)數(shù)組的遍歷中脉顿,for in循環(huán)比f(wàn)or循環(huán)運(yùn)算的快,不易死機(jī)
5.3点寥、for Each循環(huán)遍歷(擴(kuò)展ES6新語(yǔ)法)
arr.forEach(
function(elem,index,list){
console.log(elem,index,list);
}
)
注:elem循環(huán)的內(nèi)容艾疟、index下標(biāo)、list數(shù)值
6敢辩、數(shù)組的方法
6.1蔽莱、后刪除pop()
例:var arr = [“張三”,”李四”,”王五”,”馬六”,”馮七”,”趙八”,”魏九”];
arr.pop();
alert(arr);----------------->得到:張三,李四,王五,馬六,馮七,趙八
6.2、前刪除shift()
例:var arr = [“張三”,”李四”,”王五”,”馬六”,”馮七”,”趙八”,”魏九”];
arr.shift();
alert(arr);----------------->得到:李四,王五,馬六,馮七,趙八,魏九
6.3责鳍、后添加push(“”)
例:var arr = [“張三”,”李四”,”王五”,”馬六”,”馮七”,”趙八”,”魏九”];
arr.shift(“嘎嘎”);
alert(arr);----------------->得到:李四,王五,馬六,馮七,趙八,魏九,嘎嘎
6.4碾褂、前添加unshift(“”)
例:var arr = [“張三”,”李四”,”王五”,”馬六”,”馮七”,”趙八”,”魏九”];
arr.unshift(“嘎嘎”);
alert(arr);------------------>得到:嘎嘎,李四,王五,馬六,馮七,趙八,魏九
6.5、從中間添加历葛、刪除splice()
例:var arr = [1,2,3,4,5,6,7];
arr.splice(0,0,6,6);
alert(arr);-------------------->得到:6,6,1,2,3,4,5,6,7
解析:arr.splice(從第幾個(gè),刪除幾個(gè),添加1,添加2,·······)
6.6正塌、切一段slice()
例:var arr = ["a","b","c","d","e","f"];
var b=arr.slice(1,2);
alert(b);-------------------->得到:b
解析:slice(從第幾個(gè),切到第幾個(gè))切到第幾個(gè)時(shí)不含最后一個(gè)
6.7、連一塊concat()
例:var arr = ["張三","李四","王五","馬六","馮七"];
var arr2 = [1,3,5,7,9];
var arr3;
arr3 = arr.concat(arr2);
alert(arr3)恤溶;---------------得到:張三,李四,王五,馬六,馮七,1,3,5,7,9
6.8乓诽、前后反轉(zhuǎn)reverse()
例:var arr = [1,2,3,4,5,6,7];
arr.reverse();
alert(arr);-------------------->得到:7,6,5,4,3,2,1
7、數(shù)組的排序
例:var arr = [1,2,3,4,5,6,7];
arr.sort(function(a,b){
if(a>b){return -1;}
else{return 1;}
})
alert(arr);------------------>得到7,6,5,4,3,2,1
或:var arr = [1,25,13,4,55,26,47,58];
arr.sort();
alert(arr);------------------>得到:1,13,25,26,4,47,55,58
8咒程、數(shù)組最大值
【方法1】
var arr = [10,52,2,3,96,87,25,45]
var max = arr[0];
for(var k in arr){
if(arr[k]>max){
max = arr[k];
}
}
alert(max);----------------------->得到:96
【方法2】
用math,min冒充方法(call和apply用法和區(qū)別查資料)
max = Math.max.apply(null,arr);
alert(“最大的數(shù)是”+max)鸠天;
注:求min方式同上。
9帐姻、數(shù)組的去重
分析:1.新建一個(gè)新的數(shù)組(數(shù)組為空)
2.遍歷arr稠集,若新數(shù)組里有當(dāng)前數(shù),則不記錄饥瓷。若新數(shù)組里無(wú)當(dāng)前數(shù)剥纷,則該數(shù)加
入新數(shù)組
3.循環(huán)完成的新數(shù)組就是我們?nèi)ブ氐臄?shù)組
例1:var arr = [1,1,25,25,23,36,23];
var arr2 = [];
for(var i = 0;i < arr.length;i++){
if(arr2.indexOf(arr[i]) == -1){
arr2.push(arr[i]);
}
}
alert(arr2);或document.write(arr2);
例2(ES5):
let arr = [1,1,22,2,55,3,1,2,4];
let result = arr.filter(function(item,index,self){
return self.indexOf(item)===index;
//如果查找出來(lái)的下標(biāo) 不是 當(dāng)前下標(biāo) 代表是重復(fù)的
})
console.log(result);