數組
==================字面量創建數組==================
1. var arr=[]; []里邊可以放數字,字符串,true,false,null,undefined,數組([1,2,3]),對象{x:1,y:2}
var arr=[1,2.3,true,false,null,undefined,[1,2,3],{x:1,y:2}]
2. var x=1;
var arr=[x,x+3,x*5];
3 var arr=[ , , ]? ?
console.log(arr.length);? ?輸出的長度是2? 只讀到有效的為止?
4 var arr=[ 1 , , 3];
console.log(arr);? ? ?輸出結果是[1, , 3]? 單獨輸出下標為1的是arr【1】結果是undefined
=================通過構造函數Array()創建數組=============
1 var a=new Array() 創建了個空數組
2 var a=new Array(5) 創建數組 5個空數組
3 var a=new Array(1,2,‘king’,false,2.3,null); 結果是【1,2,‘king’,false,2.3,null】
4 var arr=【1,2,3,4】;
arr【0】=‘king’;? 替換下標是0的元素內容
5
var arr=[];
arr[0]='a';
arr[1]='b';
arr[-123]='c';
arr[2.3]='d';
arr[null]='e';
arr[false]='f';
arr[undefined]='g';
arr['name']='h';
arr[4]="pp";
console.log(arr); 輸出全部的數組?
console.log(arr[3]); //undefined
console.log(arr.length);? 數組的長度為5? ?(4+1)
6
var arr1=new Array(10);
arr1=[];
arr1[100]='abc';
console.log(arr1.length);? ?長度是101? (100+1)
7 定義數組的長度是3,后邊數組不加
var arr=[1,2,3,4,5,6,7,8];
arr.length=3;
console.log(arr);
8 Object.defineProperty(arr,'length',{writable:false })? 對象定義性質? arr的長度不可寫
var arr=[1,2,3];
Object.defineProperty(arr,'length',{
writable:false
});
console.log(arr.length);? ? ?長度是3
arr.length=10;
console.log(arr.length);? ? 長度還是3? 定義了長度不可寫 所以還是3
========================方法==========================
1 arr.shift()開頭刪除
2 arr.unshift()開頭添加
3 arr.push()尾部添加
4 arr.pop()尾部刪除
5 delete? arr【0】刪除下標為0的元素? 位置保留
6 arr.join()將數組內元素組合成一個字符串
7 arr.reverse()將數組元素反過來輸出
8 arr.sort()將數組元素按照ASCII碼排序
9 arr.concat()組合數組? ?用來連接兩個或者多個數組 該方法不會改變現有的數組。而僅僅會返回被連接數組的一個副本
10 arr.slice()截取
var arr=['a','b','c','d','e','f','g','h'];
res=arr.slice(0,3);? ? ?輸出是a,b,c? ?截取的是從下下標為0開始到下標為3之間的元素? 但是不包括下標是3的元素
res=arr.slice(2,-3);輸出是c,d,e? 截取的是從下標為2開始到從后數第三之間的元素,不包括下標為-3的元素
res=arr.slice(4);輸出結果是e,f,g,h 截取的是下標為4的元素到元素結束? 沒有限制
11 arr.splice(index,howmany,item1,item2........itemx)
index:必需。整數,規定添加/刪除項目的位置,使用負數從數組結尾數起
howmany:必需。要刪除的項目數量,如果沒有設置為0,則不會刪除
item2........itemx:向數組增加新數組。
var arr=['a','b','c','d','e','f','g','h'];
aes=arr.splice(0,1)? ?aes刪除的元素是 a (也就是從下標0元素開始到下標1元素刪除 不包括下標為1的元素) arr剩下的是b,c,d,e,f,g,h
aes=arr.splice(5)? aes刪除的元素是f,g,h(也就是從下標5元素開始到結束)? ?arr剩下的是a,b,c,d,e
aes=arr.splice(0,2,‘!’,‘?’,‘%’)? ? 從下標0元素開始刪除2個 在向數組添加! ? %? 結果是‘!’,‘?’,‘%’','c','d','e','f','g','h'
12 .map()
var arr=【1,2,3,4,5】;
res=arr.map(function(x){
return x*x;
})
console.log(res);結果是1,4,9,16,25? ? ?數組平方
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
var arr=['a!','b!','c','d!','e'];
res=arr.map(text); 調用函數
function text(x){
return x.replace(/!/g,'?').toUpperCase();? ? ??replace替換 將!替換成?? ?toUpperCase轉換成大寫
}
console。log(res);? ? ? ‘A?’ ,‘B?’ , ‘C’? ,‘D?? ?,‘E’
13 篩選過濾filter
console.log(res);
var arr=[1,3,4,5,5,623,4,345,4367,null,undefined,false,true,''];
res=arr.filter(function(x){
return x<=10;
});
res=arr.filter(function(x){
return x%2==0;
});
res=arr.filter(function(x){
return x!==undefined && x!=null;
});
console.log(res);
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
every所有的元素判斷? ?some一些元素部分元素
var age=[12,34,55,66,28,19];
res=age.every(function(x){
return x>=18;? ? ? ? ? ? ? ? 結果 false
});
res=age.some(function(x){
return x>=19;? ? ? ? ? ? ? ? 結果 true
});
console.log(res);
14 求和?reduce
var arr=[1,2,3,4,5];
res=arr.reduce(function(a,b){
return a+b;
});
res=arr.reduce(function(a,b){
return a+b;
},10);? ? ? ? ? ? ? ? ? ?,10如果有逗號10的話最后結果在加10
console.log(res);
15 indexOf 找下標? 如果有這個元素則找出下標是多少 如果沒有這個元素那輸出結果是-1
var arr=['a','b','c','d','e','a','bv','a'];
res=arr.indexOf(‘a’);? ? ?結果是0
res=arr.indexOf(‘b’);? ? ?結果是1
res=arr.indexOf(‘A’);? ? 結果是-1
res=arr.indexOf(‘a’,2); 結果是5? ?這個找的是第二個a元素的下標
res=arr.lastindexOf(‘a’);? 結果是7 這個找的是最后一個a元素的下標