数组遍历方法

数组遍历方法

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 引言: ES6为javascript为数组遍历提供了新的一种方式: for....of....。那之前的遍历方法各...
    小白function阅读 7,737评论 1 8
  • 转载:在开发中,数组的使用场景非常多,平日中也涉及到很多数组的api/相关操作,一直也没有对这块内容进行一块整理总...
    七色烟火阅读 8,492评论 0 3
  • js数组Array对象为我们提供了一些数组遍历的方法,这些方法有各自的作用,也分别适用于不同的场景。 Array对...
    简简_cb67阅读 4,308评论 0 0
  • 1. push(),pop() push方法用于在数组的末端添加一个或多个元素,并返回添加新元素后的数组长度。注意...
    东郭皮蛋阅读 2,976评论 0 0
  • 好像没更新技术博客,倒是学习了不少新技术,只是懒得写出来,还是得有个地方整理出来,以后每周更新一篇,给自己定个备忘...
    阿拉斯加南海岸线阅读 4,423评论 0 2