關於JavaScript中的陣列做出瞭如下總結:
1、陣列是用來儲存一組不同型別的資料的容器。可以使用建構函式的方法和字面量的方法來宣告函式;訪問陣列通過下標的方法來訪問;arr.length可以獲得陣列長度。
2、陣列棧方法包括:
unshift():在陣列頭部插入值,返回值為陣列長度
push():在陣列末尾插入值,返回值為陣列長度
shift():刪除陣列中第一個值,返回值為被刪除的值
pop():刪除陣列中最後一個值,返回值為被刪除的值
3、陣列轉字串:
join("轉換成字元的連線符,預設為逗號分開")
4、陣列排序:
reverse()數值反序(例如下:var arr=[1,2,3];
document.write(arr.reverse());輸出值為:3,2,1)
sort()元素比較大小(比大小分兩種情況,例1如下:
var arr=[5,2,3];
var arrs=arr.sort();
document.write(arrs);輸出值為2,3,5;
例2如下:
var arr=[1,21,3,0];
document.write(arr.sort());輸出值為0,1,21,3;
例2的比較大小是按第一個元素來比較的,正確升序應該為0,1,3,21,程式碼如下:
var arr=[1,21,3,0];
document.write(arr.sort(function (x,y){
return x-y;
})); 輸入出值為:0,1,3,21;
降序為:
var arr=[1,21,3,0];
document.write(arr.sort(function (x,y){
return y-x;
})); 輸出值為21,3,1,0;
)
所以sort在對陣列進行排序後,返回新陣列,sort裡可以接收一個匿名函式來對陣列進行升序與降序
5、splice:具有刪除、替換、插入功能
例如下:
var arr=[1,2,3,5];
//splice替換值,替換3
var insertArr=arr.splice(2,1,"我是替換值");//返回被刪除的值
document.write(arr+"<br />");//輸入結果為[1,2,我是替換值,5]
//splice插入值,在3的後面插入值
var replaceArr=arr.splice(3,0,"我是插入值");
document.write(arr+"<br />");//[1,2,3,我是插入值,5 ]
//splice刪除值
var delArr=arr.splice(2); //返回被刪除的值
document.write(arr+"<br />"); //[1,2]
6、arr.indexOf(必寫的要查詢的項,可選查詢的起點的位置索引) 從陣列的頭部開始檢測
arr.lastIndexOf(必寫的要查詢的項,可選查詢的起點的位置索引) 從陣列的尾部開始檢測
例:
var arr=[1,2,3,5,2,1,3];
//陣列頭部開始檢測元素2的位置
var firstArr=arr.indexOf(2)
console.log("陣列中從前往後數第一個元素2的下標為"+firstArr); //輸出值為1
//陣列尾部開始檢測元素1的位置
var lastArr=arr.lastIndexOf(1);
console.log("陣列中從後向前數第一個元素1的下標為"+lastArr); //輸出值為5
7、常見的陣列面試題如下:
1)陣列去重
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script type="text/javascript">
var arr=[1,2,3,1],//原陣列
newArr=[], //新陣列
flag;
for(var i=0;i<arr.length;i++){//迴圈原陣列
flag=true;
for(var j=0;j<newArr.length;j++){ //迴圈新陣列
if(newArr[j]==arr[i]){ //如果兩個陣列中有相同的數,flag為假
flag=false;
}
};
if(flag){ //如果flag為真
newArr.push(arr[i]);//將arr[i]插入到新陣列中
}
}
document.write(newArr)
</script>
</body>
</html>
2)陣列求和
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script type="text/javascript">
//1.計算給定陣列 arr 中所有元素的總和
var arr=[1,2,3];
function arryAnd(){
var sum=0;//和的初始值
for(var i=0;i<arr.length;i++){
sum+=arr[i];//sum=sum+0+arr[i]依次類推
}
console.log(sum);
}
arryAnd();
</script>
</body>
</html>
3)合併陣列
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script type="text/javascript">
//合併陣列 arr1 和陣列 arr2。不要直接修改陣列 arr,結果返回新的陣列
var arr1=[1,2,3],
arr2=[4,5,6],
arr;
function merge(){
return arr1.concat(arr2)
}
console.log(merge());
console.log(arr)
</script>
</body>
</html>
4)將陣列中某個數刪除,以0為例
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script type="text/javascript">
var arr=[0,2,3,0,5,0],//舊陣列
newArr=[];
for(var i=0;i<arr.length;i++){ //迴圈新陣列
if(arr[i]==0) continue;
newArr.push(arr[i]);
}
console.log(newArr);
</script>
</body>
</html>
5)switch星期的獲取
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script type="text/javascript">
//獲取星期的方法
var week=new Date().getDay();
console.log(week);//返回number,0-6
switch(week){
case 0:
document.write("星期日");
break;
case 1:
document.write("星期一");
break;
case 2:
document.write("星期二");
break;
case 3:
document.write("星期三");
break;
case 4:
document.write("星期四");
break;
case 5:
document.write("星期五");
break;
case 6:
document.write("星期六");
break;
//或最後一天如下所示:
// default:
// document.write("星期六");
}
</script>
</body>
</html>