首页 > 其他分享 >数组迭代方法和归并方法总结

数组迭代方法和归并方法总结

时间:2024-06-04 11:33:02浏览次数:20  
标签:index 归并 迭代 item let 数组 array 方法

一、迭代方法(对数组每一项都运行)

每个方法接受两个参数(以每一项为参数运行的函数, 作为函数运行上下文的作用域对象(可选))

传给每个方法的函数接收三个参数(数组元素,元素索引,数组本身)

1.filter():函数返回true的项会组成数组后返回。(过滤函数,将数组中满足条件的项组成新数组后返回)。

2.map():返回由每次函数调用的结果构成的数组。

3.forEach():没有返回值。

4.every():如果每一项都返回true,则这个方法返回true。

5.some():如果有一项返回true,则这个方法返回true。

 

//  some  every

let numbers = [ 1, 2, 3, 4, 5 ]

let everyResult = numbers.every((item, index, array) =>  item > 2 )
console.log(everyResult)  //  false

let someResult = numbers.some((item, index, array) =>  item > 2 )
console.log(someResult)  //  true

//  filter

let filterResult = numbers.filter((item, index, array) => item > 2 )
cosole.log(filterResult)  //  [ 3, 4, 5 ]

// map

let mapResult = numbers.map((item, index, array) => item * 2 )
console.log(mapResult)  //  [ 2, 4, 6, 8, 10 ]

map还可以重新定义映射关系,返回新的object或者array

let people = [{name: '张三', age: 14}, {name: '李四', age: 16}]
let nameArray = people.map((item, index, array) => item.name )
console.log(nameArray)  // ['张三','李四']

//  forEach

numbers.forEach(item, index, array) => {
//执行某些操作
})

 

二、归并方法

归并函数的四个参数(上一个归并值,当前项,当前项的索引,数组本身)

1.reduce(对每一项都会运行的归并函数,可选的以之为归并起点的初始值) :从第一项遍历至最后一项,这个函数返回的任何值都会作为下一次调用的第一个参数。,若没有传入可选的第二个参数,则第一次迭代将从数组的第二项开始。

2.reduceRight:一切同上,只不过数组遍历方向为最后一项遍历至第一项。

let values = [ 1, 2, 3, 4, 5 ]
let sum = values.reduce((prev, cur, index, array) => prev + cur )
console.log(sum) //  15

//第一次遍历:
//prev:1,cur:2,index:1
//第二次遍历:
//prev:3,cur:3,index:2

 

标签:index,归并,迭代,item,let,数组,array,方法
From: https://www.cnblogs.com/zengyu123/p/18230459

相关文章

  • 《计算机网络微课堂》实验22 VLAN间通信的实现方法:单臂路由
    下面‍‍我们来进行一个仿真实验,本仿真实验的目的在于验证VLAN间的通信,‍‍可以使用单臂路由来实现。我已经在仿真软件中构建好了我们理论课中所使用的网络拓扑,‍‍并且在各主机和路由器的各接口旁边都标注好了所需配置的IP地址和地址掩码。​​‍需要说明的是CIDR地址......
  • 《计算机网络微课堂》实验23 VLAN间通信的实现方法:使用三层交换机
    本仿真实验的目的在于验证VLAN间的通信可以使用三层交换机来实现。我已经在仿真软件中构建好了我们理论课中所使用的网络拓扑,并在各主机的旁边都标注好了所需配置的IP地址和地址掩码。​​‍博主注:在视频里使用到了三层交换机,但不知道是哪一种型号的,看到类似的有356024PS......
  • 《计算机网络微课堂》实验21 VLAN间通信的实现方法:多臂路由
    本仿真实验的目的在于验证微软件的通信可以使用多臂路由来实现。‍‍‍我已经在仿真软件中构建好了我们理论课中所使用的网络拓扑,‍‍并且在各主机和路由器的各接口旁边都标注好了所需配置的IP地址和地址掩码。‍‍​​‍需要说明的是三个地址块/后面的数字24,‍‍表明地址......
  • 学习笔记15:第二种加载数据的方法
    转自:https://www.cnblogs.com/miraclepbc/p/14367560.html构建路径集和标签集取出所有路径importgloball_imgs_path=glob.glob(r"E:\datasets2\29-42\29-42\dataset2\dataset2\*.jpg")获得所有标签species=['cloudy','rain','shine',&......
  • Java基础——抽象类与抽象方法
    抽象方法:    将共性的行为(方法)抽取到父类之后。由于每一个子类执行的内容不一样,所以,在父类中不能确定具体的方法体。该方法可以定义为抽象方法抽象类:    如果一个类中存在抽象方法,那么该类就必须声明为抽象类抽象方法的定义格式:    publicabstra......
  • java 线程池 Executors原生三大方法
    packagecom.chen.pool;importjava.util.concurrent.ExecutorService;importjava.util.concurrent.Executors;publicclassTest1{publicstaticvoidmain(String[]args){//平时我们创建一些类使用工具类操作s//总数可以管理//线程池Executors原生三大方法......
  • VIKOR方法
    简介VIKOR方法是一种多标准决策(MCDM)或多标准决策分析方法。它最初由SerafimOpricovic开发,用于解决具有冲突和不可通约(不同单位)标准的决策问题,假设冲突解决可以接受妥协,决策者想要一个最接近理想的解决方案,并根据符合所有既定标准。VIKOR对备选方案进行排名,并确定最接近理......
  • Python从0到100(三十):requests模块的其他方法
    1requests中cookirJar的处理方法使用request获取的resposne对象,具有cookies属性,能够获取对方服务器设置在本地的cookie,但是如何使用这些cookie呢?1.1方法介绍response.cookies是CookieJar类型使用requests.utils.dict_from_cookiejar,能够实现把cookiejar对象转化为字典......
  • Windows 隐式加载任意目录下动态库的方法
    windows平台下,dll的加载方式分为显式加载和隐式加载。隐式加载需要在程序链接期间指定依赖库的名称、路径等信息,程序运行时由系统自动进行处理;显式加载则是直接调用系统APILoadLibrary/FreeLibrary来加载或卸载dll模块。通常情况下,这两种方式可以处理绝大多数的应用需求。......
  • 设计模式学习(二)工厂模式——工厂方法模式+注册表
    目录工厂方法模式的瑕疵注册表工厂方法模式的瑕疵在前一篇笔记中我们介绍了工厂方法模式,示例的类图如下:考虑一种情况:现在要在程序运行时,根据外部资源,动态的实例化对象。也就是说在编译期我们无法知道要实例化的对象的类型。因此在实例化的过程中,就需要加以判断。例如,在我的例......