js中数组操作2(那些迭代器方法)

最近在看js描述的数据结构记录一下js数组操作中的一些方法

大致分为两类吧,一种是产生新数组、另一种是不产生新数组。

第一种是不产生新数组的方法

1.forEach()

需要一个方法作为参数,对数组中每个元素使用这个方法
但是这个在遍历过程中不能中途中断

2.every()

参数:一个返回值是布尔类型的方法
返回值: 布尔值 true/false
说明:和forEach()一样,every()也会对数组中每一个元素使用作为参数的方法。当对于所有数组元素使用该方法的返回值都是true时,every()返回true;反之返回false

3.some()

参数:一个返回值是布尔类型的方法
返回值: 布尔值 true/false
说明:此方法和every刚好相反。只要数组中有一个元素返回时true,则some()返回true;反之,返回false

4.reduce()

参数:接受一个方法,该方法两个参数argA,argB
返回值: 一个累加值
说明:此方法会重一个累加值开始,不断对累加值和数组中的后续元素调用参数方法,直到最后一个元素后返回累加值。该累加值就是argA;argB则是每一次参加计算的数组元素

function add(argA, argB) {
  return argA + argB;
}
var list = [1,2,3,4,5];
var sum = list.reduce(add);
// 此时sum的值就是15

注意 上面计算会从数组第一个元素计算到最后一个元素,与之相反的一个方法就是reduceRight(),
这个方法效果和用法和reduce()相同,不过是从数组最后一个元素计算到第一个元素

第二种是会产生新数组的方法

1.map()

map方法和forEach()类似,参数为一个方法,对数组中的元素使用这个方法。区别在于,map()会返回一个>数组,该数组元素就是对原有元素应用参数方法的返回值

function fun(item) {
  return item += 3;
}
var list = [1,2,3,4,5]
var newList = list.map(fun);
// 这里newList 就是: [4,5,6,7,8]

2.filter()

filter()和every()类似。参数为一个返回值是布尔类型的方法。顾名思义,filter()是过滤掉一些元素的方法。
当遍历的数组元素中返回值是true时会将此元素添加到新数组中

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

推荐阅读更多精彩内容

  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,267评论 0 13
  • 1 Object 对象 教程:https://wangdoc.com/javascript/stdlib/obje...
    智勇双全的小六阅读 2,179评论 0 0
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,269评论 19 139
  • 一 老贝,鄙人同桌。 真名罗阿宝,带我打羽毛球,把我从一级菜鸟带到了二级菜鸟水平。 老贝他人缘好啊,集全班男女老少...
    阿意禾阅读 1,015评论 10 4
  • 为了更好的了解box-shadow的特征,做几个小测试:(为了方便直接在标签内嵌套样式) 测试1: box...
    Gaochengxin阅读 400评论 0 0