NoteZ_技术博客 NoteZ_技术博客
🏠 首页
  • 📚 Web技术
  • 📋 Npm笔记
  • 📑 Markdown
  • 📄 Git笔记
  • 📝 Nginx文档
  • 📓 Linux文档
  • 📖 技术文档
  • 📜 其他文档
  • 🧊 NodeJs
  • 🎡 Express
  • 🔥 Rust
  • 🎉 Koa2
  • 🍃 MongoDB
  • 🐬 MySql
  • 🥦 Oracle
  • 🍁 Python
  • 🍄 JavaScript
  • 🌰 CSS
  • 🧄 HTML
  • 🥑 Canvas
  • 🌽 Nuxt
  • 🍆 React
  • 🥜 Vue
  • 🧅 TypeScript
  • 🌶️ AI
  • 📘 分类
  • 📗 标签
  • 📙 归档
⚜️ 在线编辑 (opens new window)
  • 📁 站点收藏
  • 📦 前端组件库
  • 📊 数据可视化
  • 🌈 开源插件
  • 🎗️ 关于我
  • 🔗 友情链接
GitHub (opens new window)

NoteZ_技术博客

前端界的小学生
🏠 首页
  • 📚 Web技术
  • 📋 Npm笔记
  • 📑 Markdown
  • 📄 Git笔记
  • 📝 Nginx文档
  • 📓 Linux文档
  • 📖 技术文档
  • 📜 其他文档
  • 🧊 NodeJs
  • 🎡 Express
  • 🔥 Rust
  • 🎉 Koa2
  • 🍃 MongoDB
  • 🐬 MySql
  • 🥦 Oracle
  • 🍁 Python
  • 🍄 JavaScript
  • 🌰 CSS
  • 🧄 HTML
  • 🥑 Canvas
  • 🌽 Nuxt
  • 🍆 React
  • 🥜 Vue
  • 🧅 TypeScript
  • 🌶️ AI
  • 📘 分类
  • 📗 标签
  • 📙 归档
⚜️ 在线编辑 (opens new window)
  • 📁 站点收藏
  • 📦 前端组件库
  • 📊 数据可视化
  • 🌈 开源插件
  • 🎗️ 关于我
  • 🔗 友情链接
GitHub (opens new window)
  • JavaScript笔记

    • ajax如何解决跨域问题
    • async与await语法
    • Axios 文件下载实现进度条功能
    • Axios 的各种请求方式及传参格式总结
    • axios简单使用
    • CommonJS与ES6 Module的导入与导出之间的区别
    • ES6 中 export,export default 和 import 区别及用法
    • Javascript - 如何循环遍历getElementsByClassName返回的所有DOM元素
    • JavaScript 实现 charts 缩放比例尺
    • javaScript 实现将文件流下载文件保存到本地
    • JavaScript 数组对象去重方法
    • JavaScript 生成 uuid
    • JavaScript 解析 get 请求 url 参成对象
    • JavaScript判断字符串中是否包含某个字符串
    • JavaScript判断是否为移动端浏览器
    • JavaScript复制内容到剪贴板的两种常用方法
    • JavaScript实现单词首字母大写的方法总汇
    • JavaScript对时间(time)、日期(date)格式转换
    • JavaScript数组去重方法总结
    • JavaScript数组类型(Array)操作方法汇总
    • JavaScript浅度和深度复制的实现方法
    • js 中的 ES5 面向对象
    • js 中的 ES6 面向对象
    • js 中的 new 命令原理
    • js 实现 iframe通信
    • js 实现将文本复制到粘贴板
    • js 异步操作
    • js 数组转为树形(tree)结构
    • js 文件分片上传
    • js 统计数组中元素的重复次数
    • JS 选中文本输入框的部分文本内容
    • js 面向对象总结
    • Js中的forEach()、map()、$.each()和$.map()之间异同
    • js中的多种数组去重性能对比总结
    • js判断移动端还是pc端
    • JS如何监听div的resize事件
    • js实现格式化JSON数据方法
    • js实现防抖与节流函数
    • Js将滚动条(scrollbar)保持在最底部的方法
    • JS异步编程进化之路
    • JS数组改变元素位置(互换、置顶、上移、下移)
    • js数组的简单使用
    • js文件单位大小转换
    • JS获取和修改url参数
    • JS获取浏览器信息
    • js获取浏览器可视区或页面大小的兼容性总结
    • JS读取本地文本文件(兼容各种浏览器)
    • js随机打乱数组
    • Promise 中的 async 与 await 特点
    • Promise封装请求
    • qs.stringify 的基本用法
    • Web worker 使用方法
    • window.open之浏览器新窗口打开
    • 使用 js 实现保存 .tree 文件到本地
    • 使用 JS 将数字转化成千分位
    • 使用 js 快速计算文件 hash 值
    • 使用 js 进行Base64编码、解码(js-base64)
    • 使用 setTimeout 解决 setInterval 计时器不准的问题
    • 使用js在树形(tree)结构中找到子节点的父级路径
    • 使用JS如何判断远程网络图片地址是否失效
    • 使用js操作浏览器cookie的设置,读取,删除
    • 使用JS解决PC端页面适配方案
    • 使用js递归生成树形结构
    • 使用原生js(input type = file)上传图片(Base64)限制大小、类型判断、像素判断
    • 关于JavaScript 数组的复制解析总结
    • 关于JavaScript数组方法使用总结
      • 内置对象
      • 前端 DOM 总结
      • 前端 js 基础总结
      • 前端使用 jszip 解压 .zip 文件获取 file 格式文件
      • 前端各种事件总结
      • 前端常用的JS(代码片段)小工具方法总结
      • 前端登录界面常用的JS小工具方法总结
      • 十六(16)进制与rgb颜色转换
      • 原生 JavaScript 实现 div 随意拖拽原生 JavaScript 实现 div 随意拖拽
      • 原生 JS 实现页面树形(tree)菜单展示功能
      • 原生js实现 table表格列宽拖拽
      • 原生js获取iframe中dom元素或父级元素
      • 如何使用 file-saver 导出文件到本地?
      • 如何使用js将目录路径list转成tree树结构
      • 实现对localStorage、sessionStorage高级封装
      • 将一维数组按指定长度转为二维数组
      • 将网站设为主页以及加入收藏功能实现方法
      • 总结 3 种 HTML 转 PDF 导出的方案
      • 比typeof运算符更准确的js类型判断
      • 浏览器模型
      • 监听滚动条事件-返回顶部的方法
      • 简析JavaScript中的事件委托问题
      • 返回顶部的通用Js方法
      • 非常实用的Js代码工具片段
      • JS_根据鼠标位置缩放元素、拖拽
      • js_登录验证码绘制
      • JS-以鼠标位置为中心的滑轮缩放-图片
      • js生成目录并实现目录节点跟随滚动高亮
      • 使用js实现标题跳转与复制实现方法
      • 使用原生js动态实现文件的上传功能
      • 使用原生js提取md中的图片信息
      • 3d-force-graph使用方法
      • js 前端(web)浏览器端读取文件目录
      • 原生js监听窗口大小变化
      • JS 中 Promise 用法(简要总结)
    • CSS笔记

    • HTML笔记

    • Canvas笔记

    • Nuxt笔记

    • React笔记

    • Vue笔记

    • TypeScript笔记

    • AI相关笔记

    • 开发文档
    • JavaScript笔记
    NoteZ
    2021-09-23
    目录

    关于JavaScript数组方法使用总结

    在这里主要介绍 forEach()、 some()、 reduce()、Every()、map()、flat()、filter()、findIndex()、find()、sort()、concat()、fill()、 includes()、reverse()、flatMap()这几种数组的操作方法。

    # 1、forEach()

    此方法用于调用数组的每个元素。并将元素传递给回调函数。

    const Arr = [{ id: 1, name: "john" },  { id: 2, name: "Ali" },  { id: 3, name: "Mass" }]
    Arr.forEach(item=> console.log(item.name))
    //依次输出: john  Ali   Mass
    
    1
    2
    3

    注意

    注意:forEach() 对于空数组是不会执行回调函数的

    # 2、map()

    该方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。它按照原始数组元素顺序依次处理元素。

    const Arr = [5, 4, 3, 2, 1];
    let newArr = Arr .map(x => x * x);
    console.log(newArr)
    //输出: [25, 16, 9, 4, 1]
    
    1
    2
    3
    4

    注意

    注意:map() 不会对空数组进行检测;map() 不会改变原始数组。

    # 3、filter()

    该方法接收一个函数作为参数。并返回一个新数组,该数组包含该数组的所有元素,作为参数传递的过滤函数对其返回 true。

    const Arr = [  { id: 1, name: "john" },  { id: 2, name: "Ali" },  { id: 3, name: "Mass" },  { id: 4, name: "Mass" }];
    let newArr = Arr.filter(item=> item.name === "Mass");
    console.log(newArr)
    //输出:[{id: 3, name: "Mass"},{id: 4, name: "Mass"}]
    
    1
    2
    3
    4

    注意

    注意:filter()方法是对数据中的元素进行过滤,也就是说是不能修改原数组中的数据,只能读取原数组中的数据,callback需要返回布尔值;为true的时候,对应的元素留下来;为false的时候,对应的元素过滤掉。

    # 4、reverse()

    此方法用于颠倒数组中元素的顺序。第一个元素成为最后一个,最后一个元素将成为第一个。

    const Arr = ["e", "d", "c", "b", "a"];
    Arr.reverse();
    //输出: ['a', 'b', 'c', 'd', 'e']
    
    1
    2
    3

    # 5、findIndex()

    此方法返回传入一个测试条件(函数)符合条件的数组第一个元素位置。它为数组中的每个元素都调用一次函数执行,当数组中的元素在测试条件时返回 true 时, findIndex() 返回符合条件的元素的索引位置,之后的值不会再调用执行函数。如果没有符合条件的元素返回 -1

    const Arr = [  { id: 1, name: "john" },  { id: 2, name: "Ali" },  { id: 3, name: "Mass" },  { id: 4, name: "Mass" }];
    let index = Arr.findIndex(item=> item.id=== 3);
    console.log(index)
    //输出:2
    let index = Arr.findIndex(item=> item.id=== 8);
    console.log(index)
    //输出:-1
    
    1
    2
    3
    4
    5
    6
    7

    注意

    注意:findIndex() 对于空数组,函数是不会执行的, findIndex() 并没有改变数组的原始值。

    # 6、find()

    此方法返回通过测试(函数内判断)的数组的第一个元素的值。find() 方法为数组中的每个元素都调用一次函数执行:当数组中的元素在测试条件时回 true 时, find() 返回符合条件的元素,之后的值不会再调用执行函数。如果没有符合条件的元素返回 undefined。

    const Arr = [  { id: 1, name: "john" },  { id: 2, name: "Ali" },  { id: 3, name: "Mass" },  { id: 4, name: "Mass" }];
    let newArr = Arr.findIndex(item=> item.id=== 3);
    console.log(newArr)
    //输出:{ id: 3, name: "Mass" }
    let newArr= Arr.findIndex(item=> item.id=== 8);
    console.log(newArr)
    //输出:undefined
    
    1
    2
    3
    4
    5
    6
    7

    注意

    注意:find() 对于空数组,函数是不会执行的;find() 并没有改变数组的原始值。

    # 7、sort()

    此方法接收一个函数作为参数。它对数组的元素进行排序并返回它。也可以使用含有参数的sort()方法进行排序。

    const Arr = [4, 5, 2, 1, 3];
    let newArr = Arr.sort((a, b) => a - b);
    console.log(newArr)
    //输出:[1, 2, 3, 4, 5]
    let newArr= Arr.sort((a, b) => b - a);
    console.log(newArr)
    //输出:[5, 4, 3, 2, 1]
    
    1
    2
    3
    4
    5
    6
    7

    # 8、flat()

    此方法创建一个新数组,其中包含子数组上的 holden 元素,并将其平整到新数组中。请注意,此方法只能进行一个级别的深度。

    const Arr = [[1, 2], [3, 4], 5];
    let newArr = Arr.flat();
    console.log(newArr)
    //输出:[1, 2, 3, 4, 5]
    
    1
    2
    3
    4

    # 9、Every()

    此方法是对数组中每项运行给定函数,如果数组的每个元素都与测试匹配,则返回true,反之则返回false。

    const Arr = ["a", "b", "c", "d", "e"];
    Arr.every(test => test === "a");
    //输出:false
    const Arr = ["a", "a", "a", "a", "a"];
    Arr.every(test => test === "a");
    //输出:true
    
    1
    2
    3
    4
    5
    6

    # 10、concat()

    此方法用于连接两个或多个数组/值,它不会改变现有的数组。而仅仅返回被连接数组的一个新数组。

    const Arr= [1, 2, 3, 4, 5];
    const Arr1= [10, 20, 30, 40, 50];
    Arr.concat(Arr1);
    //输出:[1, 2, 3, 4, 5, 10, 20, 30, 40, 50]
    
    1
    2
    3
    4

    # 11、includes()

    此方法用于判断字符串是否包含指定的子字符串。如果找到匹配的字符串则返回 true,否则返回 false。

    const Arr = [1, 2, 3, 4, 5];
    Arr.includes(3);
    //输出:true
    Arr.includes(8);
    //输出:false
    
    1
    2
    3
    4
    5

    注意

    注意:includes() 区分大小写。

    # 12、some()

    此方法为参数传递的函数测试数组。如果有一个元素与测试元素匹配,则返回 true,否则返回 false。

    const Arr = ["a", "b", "c", "d", "e"];
    Arr.some(test => test === "d");
    //输出:true
    
    1
    2
    3

    注意

    注意:some() 不会对空数组进行检测;some() 不会改变原始数组。

    # 13、reduce()

    此方法接收一个函数作为累加器。它为数组中的每个元素依次执行回调函数,不包括数组中被删除或者从未被赋值的元素。函数应用于累加器,数组中的每个值最后只返回一个值。

    const Arr = [1, 2, 3, 4, 5];
    Arr.reduce((total, value) => total * value);
    //输出:120
    
    1
    2
    3

    注意

    注意:reduce() 方法接受四个参数:初始值(上一次回调的返回值),当前元素值,当前索引,原数组。

    # 14、flatMap()

    该方法将函数应用于数组的每个元素,然后将结果压缩为一个新数组。它在一个函数中结合了 flat()和 map()。

    const Arr = [[1], [2], [3], [4], [5]];
    Arr .flatMap(arr => arr * 10);
    //输出 : [10, 20, 30, 40, 50];
    //  Arr.flat().map(arr => arr * 10);
    //输出 : [10, 20, 30, 40, 50];
    
    1
    2
    3
    4
    5

    # 15、fill()

    此方法的作用是使用一个固定值来替换数组中的元素。该固定值可以是字母、数字、字符串、数组等等。它还有两个可选参数,表示填充起来的开始位置(默认为0)与结束位置(默认为array.length)。

    const Arr = [1, 2, 3, 4, 5];
    Arr.fill(0, 1, 3);
    输出: [1, 0, 0, 4, 5]
    
    1
    2
    3

    注意

    注意:fill() 方法用于将一个固定值替换数组的元素。

    #JavaScript
    上次更新: 2024/01/30, 00:35:17
    关于JavaScript 数组的复制解析总结
    内置对象

    ← 关于JavaScript 数组的复制解析总结 内置对象→

    最近更新
    01
    Gitea数据备份与还原
    03-10
    02
    Linux 中使用 rsync 同步文件目录教程
    03-10
    03
    Linux 使用 rsync 互相传输同步文件的简单步骤
    03-08
    更多文章>
    Theme by Vdoing | Copyright © 2019-2025 NoteZ,All rights reserved | 冀ICP备2021027292号-1
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式