天天看點

javascript數組循環方法合集

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
           

繼續閱讀