第139篇:JS数组常用方法(map(),reduce(),foreach())
好家伙,本篇为MDN文档数组方法的学习笔记
Array.prototype.reduce() - JavaScript | MDN (mozilla.org)
数组方法这块的知识缺了,补一下
1.map()方法
map() 方法创建一个新数组,这个新数组由原数组中的每个元素都调用一次提供的函数后的返回值组成。
const array1 = [1, 4, 9, 16]; const array2 = array1.map(Math.sqrt); console.log(array2);

const array1 = [1, 3, 5, 9]; const array2 = array1.map((x) =>
x * 2
); console.log(array2);

map() 方法是一个迭代方法。它为数组中的每个元素调用一次提供的 callbackFn 函数,并用结果构建一个新数组。
这个必须要注意一下,不同于其他的数组方法,这里返回的是一个新的数组,而不是对原来的数组进行操作
const array1 = [1, 4, 9, 16]; const array2 = array1.map(Math.sqrt); const array3 = array1.map((x) =>
x * 2
);
console.log(array1);
console.log(array2);
console.log(array3);

2.foreach()方法
forEach() 方法对数组的每个元素执行一次给定的函数。
const array1 = [1, 4, 9,16]; array1.forEach((x) => console.log(x));

2.2.区别与于map()方法,forEach方法是对原先的数组的每一项调用方法,不产生新的数组
const array1 = [1, 4, 9, 16]; let array2 = array1.forEach((x) => console.log(x)); console.log(array2);

2.3.给定函数的参数

2.4.forEach() 期望的是一个同步函数,它不会等待 Promise。
3.reduce()方法
reduce() 方法对数组中的每个元素按序执行一个由您提供的 reducer 函数,每一次运行 reducer 会将先前元素的计算结果作为参数传入,最后将其结果汇总为单个返回值。
这个方法唯一比较难记的就是参数了
callbackFn
一个“reducer”函数,包含四个参数:
previousValue:上一次调用callbackFn时的返回值。在第一次调用时,若指定了初始值initialValue,其值则为initialValue,否则为数组索引为 0 的元素array[0]。currentValue:数组中正在处理的元素。在第一次调用时,若指定了初始值initialValue,其值则为数组索引为 0 的元素array[0],否则为array[1]。currentIndex:数组中正在处理的元素的索引。若指定了初始值initialValue,则起始索引号为 0,否则从索引 1 起始。array:用于遍历的数组。
initialValue 可选
作为第一次调用 callback 函数时参数 previousValue 的值。若指定了初始值 initialValue,则 currentValue 则将使用数组第一个元素;
否则 previousValue 将使用数组第一个元素,而 currentValue 将使用数组第二个元素。

(MDN文档真是太贴心了)
3.1.用reduce()实现简单的叠加器
let sum = [0, 1, 2, 3].reduce(function (previousValue, currentValue) {
return previousValue + currentValue
}, 0)
console.log(sum)

第139篇:JS数组常用方法(map(),reduce(),foreach())的更多相关文章
- 第一百一十四篇: JS数组Array(三)数组常用方法
好家伙,本篇为<JS高级程序设计>第六章"集合引用类型"学习笔记 1.数组的复制和填充 批量复制方法 copyWithin(),以及填充数组方法fill(). 这两 ...
- 优化 JS 条件语句及JS 数组常用方法, ---- 看完绝对对日后开发有用
前言: 日常所说的优化优化.最后我们到底优化了哪些,不如让我们从代码质量开始:个人觉得简洁简化代码其实觉得存在感挺强烈的QAQ 1. 获取URL中 ?后的携带参数: 这是我见过最简洁的了,若有更简洁的 ...
- es6 js数组常用方法
一:会改变自身的方法 1.array.push(element1, ...elementN) 添加一个或多个元素到数组的末尾,并返回数组新的长度 2.array.unshift(element1, . ...
- 数组遍历 map()、forEach() 及 字符串切割 split() / 字符串截取 slice()、substring()、substr()
JS数组遍历的几种方式 JS数组遍历,基本就是for,forin,foreach,forof,map等等一些方法,以下介绍几种本文分析用到的数组遍历方式以及进行性能分析对比 第一种:普通for循环 代 ...
- js数组中indexOf/filter/forEach/map/reduce详解
今天在网上看到一篇帖子,如题: 出处:前端开发博客 (http://caibaojian.com/5-array-methods.html) 在ES5中一共有9个Array方法,分别是: Array. ...
- JS Array常用方法indexOf/filter/forEach/map/reduce详解
Array共有九个方法 Array.prototype.indexOf Array.prototype.lastIndexOf Array.prototype.every Array.protot ...
- JS进阶篇--JS数组reduce()方法详解及高级技巧
基本概念 reduce() 方法接收一个函数作为累加器(accumulator),数组中的每个值(从左到右)开始缩减,最终为一个值. reduce 为数组中的每一个元素依次执行回调函数,不包括数组中被 ...
- Js数组的map,filter,reduce,every,some方法
var arr=[1,2,3,4,5,6]; res = arr.map(function(x){return x*x}) [1, 4, 9, 16, 25, 36] res = arr.filter ...
- js数组常用方法汇总
判断某个对象是否是数组: instanceof.Array.isArray() 对于一个网页或者一个全局作用域可以使用instanceof操作符. if(value instanceof Array) ...
- JS数组常用方法总结
JavaScript中创建数组有两种方式 (一)使用 Array 构造函数: var arr1 = new Array(); //创建一个空数组 var arr2 = new Array(20); / ...
随机推荐
- C/C++ 数据结构循环队列的实现
#include <iostream> #include <Windows.h> using namespace std; #define MAXSIZE 6 typedef ...
- 用echarts做兼容ie8的三测单(体温单) 代码全
$.fn.extend({ /** * * @param { * UrineOutputData: 尿量数据 * OutputData: 出量数据 * InputData: 入量数据 * shitDa ...
- docker中的gitlab数据备份、迁移和升级
前期准备 数据备份 记录gitlab运行命令: docker run -itd --name gitlab \ --hostname gitlab.suniot.cn \ -p 443:443 -p ...
- ElasticSearch 单点部署
1.下载指定的ES版本(7.17.3) https://www.elastic.co/downloads/past-releases/elasticsearch-7-17-3 2.单点部署elasti ...
- python:m3u8转mp4
import re,requests,time,os import threadpool res = requests.get(url="http://pili-vod.tebaobao.v ...
- rosetta Resfile语法和约束
介绍 参考:https://www.rosettacommons.org/docs/latest/rosetta_basics/file_types/resfiles resfile包含输入到Pack ...
- 【问题解决】Nacos服务端NVDB-CNVDB-2023674205漏洞
缘起 最近(2023.03.13)客户现场要求自检有无使用Nacos,原因是Nacos存在认证绕过高危漏洞,其漏洞代码NVDB-CNVDB-2023674205,本文就简单说一下这个事儿,以及如何解决 ...
- gRPC之.Net6中的初步使用说明
1.介绍 GRPC是一个高性能.通用的开源远程过程调用(RPC)框架,基于底层HTTP/2协议标准和协议层Protobuf序列化协议开发,支持众多的开发语言,由Google开源. gRPC也是基于以下 ...
- UI界面实现SSH登录服务器并执行命令监控
一.通过paramiko实现SSH远程登录服务器.执行命令并返回信息: 二.通过wxpython实现UI化: 三.代码实现如下: 1)主程序MainUI #coding:utf8 #!/usr/bin ...
- Java 编程入门第一课:HelloWorld
在之前的文章中,壹哥带大家搭建出了 Java 的开发环境,配置了 JDK 环境变量,并且我们也熟悉了 dos 命令行的操作.那么从这篇文章开始,壹哥就开始带各位真正地学习 Java 代码该怎么写. - ...