当前位置: 首页 > news >正文

JavaScript中的数组改变原数组的方法

数组

var a = [1, 2, 3, 5, 8, 13, 21]

改变原数组的方法

push(value)

数组末尾添加一个或多个元素,并返回新的数组长度

推入,a.push(34)

简单,不演示了

pop()

删除最后一个元素,并返回该元素的值

弹出,a.pop()

简单,不演示了

unshift(value)

数组开头添加一个或多个元素,并返回新的数组长度

unshift数组头部插入,a.unshift(-1)

简单,不演示了

shift()

删除数组第一个元素,并返回该元素的值。

shift改变,数组头部删除,a.shift()

简单,不演示了

reverse()

将数组的元素顺序颠倒,修改元素组。

反转,a.reverse()

a.reverse() //[21, 13, 8, 5, 3, 2, 1]

sort(f())

对数组的元素进行排序

排序,a.sort(function(a,b){return b-a;})

splice(start,deleteCount,item1,item2...)

在任意位置添加、删除或替换数组的元素。

粘接

了解即可

forEach(f(value,index,arr))

遍历数组中每个元素执行回调,无返回值.

遍历,无返回值,三参数,数组元素值,元素索引可选,原数组可选

function add1(value,index,arr){ console.log(value+"|"+index+"|"+arr); arr[index]=value+1; console.log(a); } a.forEach(add1) // [2, 3, 4, 6, 9, 14, 22]

map(f(value,index,arr))

创建新数组,每个元素结果覆盖原值。返回值是新数组。

映射,同forEach类似,区别是改变原数组并返回。

function multi(value,index,arr){ console.log(value+"|"+index+"|"+arr); arr[index]=value*2; console.log(a); } a.map(multi); //[2, 4, 6, 10, 16, 26, 42]

filter(f(item,i,arr))

创建新数组,符合要求返回。

过滤,不修改原数组

function lv(item,i,arr){ console.log("数组项:"+item+",索引:"+i+",当前数组:"+arr); //筛选出偶数来 if(item%2==0){ return item; } } a.filter(lv); //[2, 8]

reduce(f(acc,curVal,i,arr),initVal)

对数组进行积累操作,升序执行,返回总值

减少,f(累计值,当前值,索引,数组),初始值

function sum(a,b,i,arr){ console.log("初始值:"+a+",当前项:"+b+",索引:"+i+",当前数组:"+arr); //将中间累积值保存在原数组acc属性中 arr.acc.push(a+b); return a+b; } a.reduce(sum);//53 a.acc//[3, 6, 11, 19, 32, 53]

reduceRight(f())

降序执行,返回总值

右侧减少,

同上

a.reduceRight(sum); a.acc//[34, 42, 47, 50, 52, 53]


http://www.mrgr.cn/news/44006.html

相关文章:

  • 数据结构之红黑树实现(全)
  • YOLOv10改进,YOLOv10添加CA注意力机制,二次创新C2f结构,助力涨点
  • 【并发】ThreadLocalMap 解决 Hash 冲突的实现方式
  • Golang 进阶1 —— 面向对象
  • 简单认识 redis -3 -其他命令
  • React常见优化问题
  • 嵌入式硬件设计中EDA布局与布线实现
  • Python编程常用的35个经典案例
  • 第十四周:机器学习
  • 斗破C++编程入门系列之三十七:多态性:运算符重载的概念和规则(四星斗师)
  • 【科普】PyTorch和Tensorflow分别是什么?两者之间有什么异同?
  • 李宏毅深度学习-图神经网络GNN
  • YOLOv11 vs YOLOv8:谁才是真正的AI检测之王?
  • 海南聚广众达电子商务咨询有限公司助力商家业绩飙升
  • 文字转语音免费的有哪些?这6款文字转语音软件让你配音效果炸满!
  • 组件中$router/$route的由来(vue-router源码分析)
  • 看完一集就上瘾,Netflix复仇剧实在太精彩
  • 【QT Quick】C++交互:调用QML函数
  • TS1 order set分析
  • 数据库有哪些身份验证技术