记录一下JavaScript中常用的数组操作

本文主要记录一下在开发中常用的js数组操作:

map():返回一个新数组、这个数组的每一个元素都调用一次提供函数的返回值组成的

javascript 复制代码
const array = [1,2,3];
const mapArray = array.map(x => x *2) // 2,4,6

filter(): 创建给定数组一部分的浅拷贝;主要用于过滤数据元素的场景下。代码举例如下:

javascript 复制代码
const array = [{name:"zhansan",age:18},{name:'tom',age:20},{name:"lisi",age:21},{name:'jerry',age:14}]
const newArray = array.filter(item => item.age > 18);
console.log(newArray);//output: {name:'tom',age:20},{name:"lisi",age:21}
// 此时修改如下元素名称
newArray[1].name = "lisi2";
// 将看到array数组的lisi名称被修改为lisi2

reduce():逐个遍历数组元素,将当前元素的值与之前的计算值相加。如果需要从数组下标为0的元素开始计算、则需要传递一个初始值,否则将会以第0个元素为初始值,从第一个元素计算开始、使用于需要计算当前元素的总值情况,如后端返回了一个question数组,计算当前question的总分数。

javascript 复制代码
const array = [1,2,3,4]
const initValue = 10;
const sumWithInitial = array.reduce(
  (accumulator, currentValue) => accumulator + currentValue,
  initValue,
);// 20
​
const sumWithOutInitial = array.reduce(
  (accumulator, currentValue) => accumulator + currentValue,
);//10

slice(): 方法返回一个新的数组对象,这一对象是一个由 startend 决定的原数组的浅拷贝(包括 start,不包括 end, 左闭右开区间),其中 startend 代表了数组元素的索引。原始数组不会被改变。

javascript 复制代码
const array = ["apple","banana","orange","tomato"]
const sliceArray = array.slice(1,3)// "banana","orange";

splice(start,deleteCount,newItem): 就地的删除或者替换已存在的元素或者添加新的元素,start:表示元素数组元素开始的位置,deleteCount:要删除的元素个数,如果省略了 deleteCount,或者其值大于或等于由 start 指定的位置到数组末尾的元素数量,那么从 start 到数组末尾的所有元素将被删除,newItem:从 start 开始要加入到数组中的元素。可选的。返回值是一个删除元素的数组,如果没有删除元素则是空数组。

javascript 复制代码
const array = ["apple","banana","orange","tomato"]
const removed = array.splice(2, 0, "bbq");
// array 是 ["apple","banana",'bbq',"orange","tomato"]
// removed 是 [],没有移除的元素
const added = array.splice(2, 0, "java",'css');
// array 是 ["apple","banana","java",'css','bbq',"orange","tomato"]

shift() 方法从数组中删除第一个元素,并返回该元素的值。此方法更改数组的长度

相关推荐
华玥作者8 小时前
[特殊字符] VitePress 对接 Algolia AI 问答(DocSearch + AI Search)完整实战(下)
前端·人工智能·ai
Mr Xu_8 小时前
告别冗长 switch-case:Vue 项目中基于映射表的优雅路由数据匹配方案
前端·javascript·vue.js
前端摸鱼匠8 小时前
Vue 3 的toRefs保持响应性:讲解toRefs在解构响应式对象时的作用
前端·javascript·vue.js·前端框架·ecmascript
lang201509288 小时前
JSR-340 :高性能Web开发新标准
java·前端·servlet
好家伙VCC9 小时前
### WebRTC技术:实时通信的革新与实现####webRTC(Web Real-TimeComm
java·前端·python·webrtc
未来之窗软件服务10 小时前
未来之窗昭和仙君(六十五)Vue与跨地区多部门开发—东方仙盟练气
前端·javascript·vue.js·仙盟创梦ide·东方仙盟·昭和仙君
嘿起屁儿整10 小时前
面试点(网络层面)
前端·网络
VT.馒头10 小时前
【力扣】2721. 并行执行异步函数
前端·javascript·算法·leetcode·typescript
phltxy11 小时前
Vue 核心特性实战指南:指令、样式绑定、计算属性与侦听器
前端·javascript·vue.js
Byron070712 小时前
Vue 中使用 Tiptap 富文本编辑器的完整指南
前端·javascript·vue.js