js数组学习(ES6+)

这篇具有很好参考价值的文章主要介绍了js数组学习(ES6+)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

js(ES6+)数组学习
1.Array.prototype.forEach(fn)

遍历数组,传一个函数,每次遍历会运行该函数


const arr = [45, 7, 2, 4, 1, 57, 3]

// for (const item of arr) {
//     console.log(item);
// }

// arr.forEach(function(item){
//     console.log(item);
// });

//遍历时函数里其实有三个参数,需要的时候,可以把数据下标和数组本身
arr.forEach(function(item,index,arr){
    console.log(item,index,arr);
});
2.Array.prototype.map(fn)

数组映射,传入一个函数,映射数组中的每一项,不会改动原数组,然后返回一个新的数组!

const arr = [45, 7, 2, 4, 1, 57, 3]

//数组每一项翻倍
const newArr = arr.map(function(item){
    return item*2;
});
console.log(newArr)

//随意用,比如返回一个对象
const newArr1 = arr.map(function(item){
    return{
        n : item,
        doubleN : item*2
    };
});

console.log(newArr1,'newArr1')
3.Array.prototype.filter(fn)

数组筛选,传入一个函数,仅保留满足条件的项。不会改变原数组,然后返回一个新数组!

const arr = [45, 7, 2, 4, 1, 57, 3]
//返回 和原数组一样的内容
const newArr = arr.filter(function (item){
    return true;
});

//返回新数组是个空数组,false把每一项都排除掉了
const newArr1 = arr.filter(function (item){
    return false;
});

//返回奇数数组
const newArr2 = arr.filter(function (item){
    return item % 2 !== 0;
});
console.log(newArr2)
4.Array.prototype.reduce(fn)

数组聚合,传入一个函数,对数组每一项按照该函数的返回聚合。 数组聚合相对复杂一点,但是多用于求和,简单理解很多项揉成一项就能用reduce。

const arr = [45, 7, 2, 4, 1, 57, 3]

const sum = arr.reduce(function(a,b){
    return a+b;
},0);
console.log(sum,'求和')
/**
 * 详细分析:
 * reduce函数里 有两个参数,一个function,第二个默认值0。到底是怎么运行的:
 * reduce一开始在内部开了一个空间,记录一开始的结果(用result代表)就是第二个参数,为0。
 * 然后function开始运行,把result为0这个结果给第一项a,我们数组arr第一项 45给b,a始终是
 * 当前的结果,当前结果是0,45给b,返回a+b=45,result就更新为45,这时候又把result=45 传给a,
 * arr第二个元素7给b,返回 a+b=52,result就更新为52,再次传给a,往复下去。直到b为3,
 * return a+b,最终结果为119
 */
5.Array.prototype.some(fn) every
const arr = [45, 7, 2, 4, 1, 57, 3]
//只要有一个元素满足条件就返回true,否则false
const result = arr.some(function (item) {
    return item > 50;
});
console.log(result,'结果')

//所有元素都要满足条件返回true,否则false
const result1 = arr.every(function (item) {
    return item > 0;
});
console.log(result1,'结果1')
6.Array.prototype.find(fn)

传入一个函数,找到数组中第一个能通过改函数测试的项
返回满足条件的元素,但是有两个元素满足条件时候,返回的还是第一个元素,怎么解决。用filter就行。

const arr = [45, 7, 2, 4, 1, 57, 3,54]
const result = arr.find(function(item){
    return item > 50;
});
console.log(result)
7.Array.prototype.includes(item)

判断数组中是否存在item,判定规则使用的是Object.is。传的不是函数了,传的是元素。//object.is({},{}) object.is(1,1),object.is理解为===文章来源地址https://www.toymoban.com/news/detail-650718.html

const arr = [45, 7, 2, 4, 1, 57, 3,54]
const result = arr.includes(2)
console.log(result)

到了这里,关于js数组学习(ES6+)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【ES6】JavaScript 中的数组方法reduce

    reduce() 是一个 JavaScript 中的数组方法,它会对数组的每个元素执行一个提供的 reducer 函数,将其减少到一个单一的值。 这是 reduce() 的基本用法: 这里: callback 是一个用于每个数组元素的函数,接受四个参数: accumulator:累加器累加回调的返回值。它是上一次调用回调时返回

    2024年02月10日
    浏览(33)
  • JS学习之ES6

    ES6是一个泛指,指EDMAJavaScript之后的版本。它是JS的语言标准。 简介:它是一个工具,主攻服务器,使得利用JS也可以完成服务器代码的编写。 安装: 安装Nodejs的同时,会附带一个npm命令,npm是Node的包管理工具。 还需要用到cnpm工具。cnpm是一个国内的镜像工具。比使用npm安装

    2024年02月15日
    浏览(37)
  • JS--es6模板字符串

    一、模板字符串空格 二、模板字符串换行 1.转义 2.缩进换行

    2024年02月16日
    浏览(78)
  • 【JavaScript】探索ES6中的数组API:简洁高效的操作方式

    ES6 ( ECMAScript 2015 )是 JavaScript 语言的一个重要版本,为编写更加简洁、便捷和可读性更高的代码提供了很多新的特性和 API。想了解ES6所有新增API,可以跳转至我的另一篇博客:JS语法 ES6、ES7、ES8、ES9、ES10、ES11、ES12新特性 其中 数组相关的 API 也在 ES6 中得到了大大的增强,

    2024年02月09日
    浏览(50)
  • JavaScript笔记——快速了解 ES6 新增数组方法,开箱即用(含案例)

    数组是 JavaScript 以及多数编程其他编程语言的一种基础数据类型。 ES6 提供了许多新的数组方法,这篇文章将介绍其中一些常用的数组方法及其使用示例。 Array.from() 方法从一个类似数组或可迭代对象中创建一个新的,浅拷贝的数组实例。例如,将字符串转换为字符数组。 A

    2024年02月10日
    浏览(45)
  • JS(es6)同时给多个变量赋值

    在ES6中,可以使用解构赋值语法同时给多个变量赋值。解构赋值语法可以从数组或对象中提取值,并将其赋给多个变量。 1. 数组解构赋值: 2. 对象解构赋值: 3. 数组和对象同时进行解构赋值:

    2024年02月15日
    浏览(51)
  • ES6+--》熟知JS中的async函数

    目录 async函数 await 表达式 async使用形式 async读取文件 async发送AJAX请求 与生成器(Generator)相比 async函数的返回值为 promise 对象,promise对象的结果由async函数执行的返回值决定。async函数能使得异步操作变得更加方便,简而言之就是 Generator 的语法糖。 定义async函数,特点是即便

    2024年01月17日
    浏览(42)
  • terser用于ES6的压缩JS工具

    https://www.npmjs.com/package/terser uglify-es不再维护,uglify-js也不支持ES6+。 terser是uglify-es的一个分支,主要保留了与uglify和uglify-js@3. terser [input files] [options] 使用 terser-webpack-plugin (npm i terser-webpack-plugin) 因为uglifyjs不支持es6语法,所以用terser-webpack-plugin替代uglifyjs-webpack-plugin terse

    2024年02月11日
    浏览(36)
  • JavaScript学习笔记01(包含ES6语法)

    Js 最初被创建的目的是“使网页更生动”。 Js 写出来的程序被称为 脚本 ,Js 是一门脚本语言。 被直接写在网页的 HTML 中,在页面加载的时候自动执行 脚本被以纯文本的形式提供和执行,不需要特殊的准备或编译即可运行(JIN compiler) Js 不仅可以在浏览器中执行,也可以在

    2024年02月16日
    浏览(53)
  • 背上大大书包准备run之JS篇(含Es6)

    目录 js数据类型? 数组常用方法?哪些改变原数组,哪些不改变? 冒泡排序不用js数组sort方法? 字符串常用方法? == 和 === 区别,分别在什么情况使用? 深拷贝浅拷贝? 闭包?闭包使用场景? 作用域?作用域链? 原型?原型链? this的理解? typeof和instanceof区别? 事件代

    2024年02月13日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包