数组遍历方法

数组遍历方法

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);

你可能感兴趣的:(数组遍历方法)