1、for
let arr=[1,2,3];
for(let i=0;i<arr.length;i++){
console.log(arr[i]);//1,2,3
}
2届谈、for/in
釋:作用于對象
let obj={name:'qiuyuan',sex:'男',age:'29',birthday:'1991-10-30'};
for(let item in obj){
console.log(obj[item]);
}
3、map
釋:map會遍歷數(shù)組中的元素弯汰,并將處理后的結(jié)果組成新的數(shù)組返回艰山,元數(shù)組不受影響
此外:map接受第二個(gè)參數(shù),一般 也是一個(gè)數(shù)組,其作用是改變函數(shù)內(nèi)部的this指向
let arr=[1,2,3];
let newAarr=arr.map((i)=>{
return i*2;
});
console.log(newAarr);//[2,4,6]
console.log(arr);//[1,2,3]
// 函數(shù)的三個(gè)參數(shù),元素轴踱、序號泥从、原數(shù)組
let newAarr1=arr.map((i,index,array)=>{
return i*2;
});
4、forEach
釋:forEach的使用方法跟map很像舔腾,只不過forEach沒有返回值溪胶,不需要return,當(dāng)需要有返回值的時(shí)候用map稳诚,不需要返回值的時(shí)候用forEach哗脖,同map,forEach也有第二個(gè)參數(shù)來改變函數(shù)的內(nèi)部this指向;
5才避、filter
釋:同map橱夭,通過return一個(gè)判斷語句來過濾返回一個(gè)由滿足條件的元素組成的新數(shù)組;同樣有第二參數(shù)
6桑逝、some();every();
釋:some也是通過return回一個(gè)判斷語句棘劣,當(dāng)數(shù)組中有一個(gè)元素是滿足條件的,就返回true楞遏,every剛好相反茬暇;
7、reduce(); reduceRight();
釋:參數(shù)一:函數(shù)4個(gè)形參寡喝,1糙俗,默認(rèn)第一個(gè)元素,2 默認(rèn)第二個(gè)元素预鬓,3巧骚,起始位置,4格二,原數(shù)組
參數(shù)二:基礎(chǔ)值(當(dāng)有第二個(gè)參數(shù)的時(shí)候网缝,a起始為第二個(gè)參數(shù),且c為b的位置)蟋定;
let arr=[1,2,3,4,5];
arr.reduce((a,b,c,d)=>{
console.log(a,b,c,d);
return a+b;
})
// 1 2 1 [1,2,3,4,5]
// 3 3 2 [...]
// 6 4 3 [...]
// 10 5 4 [...]
arr.reduce((a,b,c,d)=>{
console.log(a,b,c,d);
return a+b;
},2)
//2 1 0 (5) [1, 2, 3, 4, 5]
// 3 2 1 (5) [1, 2, 3, 4, 5]
// 5 3 2 (5) [1, 2, 3, 4, 5]
// 8 4 3 (5) [1, 2, 3, 4, 5]
// 12 5 4 (5) [1, 2, 3, 4, 5]
function findLongest(entries) {
return entries.reduce(function (longest, entry) {
return entry.length > longest.length ? entry : longest;
},'11');
}
findLongest(['aaa', 'bb', 'c'])粉臊;// ‘a(chǎn)aa’
8、Object.keys();