arr.forEach();無傳回資料;兩個參數:回調函數,this指向(一般不使用該參數)
arr.map();有傳回新的數組,沒有的話使用forEach;兩個參數:回調函數,this指向(一般不使用該參數)
arr.filter();有傳回新的數組;過濾;需要使用return;如果回調函數傳回為true則傳回數組中包含對應的數組中的值;兩個參數:回調函數,this指向(一般不使用該參數)
arr.some();循環,查找,數組中包含有符合條件的元素(一個或者多個),傳回true;兩個參數:回調函數,this指向(一般不使用該參數)
arr.every();數組裡面的元素都符合條件,傳回ture;兩個參數:回調函數,this指向(一般不使用該參數)【表單驗證場景】
arr.reduce();求數組的和,參數與上面的不同,回掉函數有四個參數(prev,cur,index,arr)【柱狀圖求和等場景使用】,
arr.reduceRight(),從右向左運算,和reduce相反方向;
ES6新增:for……of……循環;
Array.from();把類數組(擷取的一組元素、arguments...)對象轉化成數組;
Array.of():将一組值轉化為數組;
Array.find():找出第一個符合條件的數組成員。如果沒有找到傳回undefined;
Array.findIndex():找的是位置,沒有找到傳回-1;
Array.fill():填充,三個參數:填充内容,開始的位置,結束的位置
ES6新增:Array.includes():是否含有某個元素,傳回布爾值;
新增補充部分執行個體:
let arr=['aaa','bbb','ccc'];
let brr=[
{title:'aaa',read:100,hot:true},
{title:'bbb',read:100,hot:true},
{title:'ccc',read:100,hot:false},
{title:'ddd',read:100,hot:true}
]
arr.forEach((v,i,arr)=>{
console.log(v,i,arr)
})
let newArr = brr.filter((v,i)=>{
return !v.hot
});
console.log(newArr);
let newArr = brr.some((v,i)=>{
return v.title='bbb'
});
console.log(newArr);
let newArr = brr.every((v,i)=>{
return v.hot
});
console.log(newArr);
let crr=[1,2,3,4,5,6,7,8,9,10];
let res=crr.reduce((prev,cur,index,crr)=>{
console.log(prev,cur,index);
return prev+cur;
})
console.log(res);
for(let val of arr){}
for(let index of arr.key){}
let isNew = arr.find(()=>{
return val=='aaa'
})
console.log(isNew);
let isHas = arr.includes('aaa');
console.log(isHas);
ES6引入方法:
find,傳回符合條件的第一個數組成員,找不到則傳回undefined;
findIndex,傳回符合條件的第一個數組成員的下标。
let arr = [1,2,3,-2];
arr.find(item=>item<0)//return -2
[1,2,3,-4].findIndex(item=>item<0)// return 3