数组遍历方法
1. for each()
var str= ['Tom','Jerry','Nancy','Lucy'];
str.forEach(function (value,index,array) {
value+='!';
console.log(value);
})
// Tom!,jerrry!,Nancy!,Lucy!
2. every()
用来对元素进行检查,需要返回一个boolean 类型的值,如果为true继续遍历,如果为false 停止遍历,当所有元素都返回true时,结果才为true, 否则为false
var str= ['Tom','Jerry','Nancy','Lucy'];
var hasLucy = str.every(function (value,index,array) {
console.log(value);
if (value=='Lucy') {
return false;
} else {
return true;
}
})
console.log(hasLucy);// false
var isString = str.every(function (value,index,array) {
console.log(value);
if (typeof value =="string") {
return true;
} else {
return false;
}
})
console.log(isString);// true
3. some()
与every()方法相同,只是有一个满足要求就为true, 全部不满足才为false
4. map()
将数组中的每个元素执行回调,返回值重新组成数组返回
var helloObj = str.map(function (value,index,arr) {
return 'hello'+value;
})
/*0: "helloTom"
1: "helloJerry"
2: "helloNancy"
3: "helloLucy"*/
5 . reduce() 数组累加器
reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。
reduce() 可以作为一个高阶函数,用于函数的 compose。
方法:array.reduce(function(total, currentValue, currentIndex, arr), initialValue)
参数 | 描述 |
---|---|
total | 必需。初始值, 或者计算结束后的返回值。 |
currentValue | 必需。当前元素 |
currentIndex | 可选。当前元素的索引 |
arr | 可选。当前元素所属的数组对象。 |
注意: reduce() 对于空数组是不会执行回调函数的。
var helloEveryOne = str.reduce(function (prev,currv,index) {
return prev+currv;
},'hello')
console.log(helloEveryOne);
//helloTomJerryNancyLucy
6. filter()
filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
var afterL = str.filter(function (value,index,array) {
if (value>'L') {
return true;
} else {
return false;
}
})
console.log(afterL);
网友评论