1、for
let arr=[1,2,3];
for(let i=0;i
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会遍历数组中的元素,并将处理后的结果组成新的数组返回,元数组不受影响
此外:map接受第二个参数,一般 也是一个数组,其作用是改变函数内部的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]
// 函数的三个参数,元素、序号、原数组
let newAarr1=arr.map((i,index,array)=>{
return i*2;
});
4、forEach
释:forEach的使用方法跟map很像,只不过forEach没有返回值,不需要return,当需要有返回值的时候用map,不需要返回值的时候用forEach,同map,forEach也有第二个参数来改变函数的内部this指向;
5、filter
释:同map,通过return一个判断语句来过滤返回一个由满足条件的元素组成的新数组;同样有第二参数
6、some();every();
释:some也是通过return回一个判断语句,当数组中有一个元素是满足条件的,就返回true,every刚好相反;
7、reduce(); reduceRight();
释:参数一:函数4个形参,1,默认第一个元素,2 默认第二个元素,3,起始位置,4,原数组
参数二:基础值(当有第二个参数的时候,a起始为第二个参数,且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']);// ‘aaa’
8、Object.keys();