js常用删除数组方法

JavaScript025

js常用删除数组方法,第1张

下面三种都会影响原数组,最后一项不影响原数组:

opop()

oshift()

osplice()

oslice()

1、pop()

pop() 方法用于删除数组的最后一项,同时减少数组的length 值,返回被删除的项

let colors = ["red", "green"]

let item = colors.pop()// 取得最后一项

console.log(item) // green

console.log(colors.length) // 1

2、shift()

shift()方法用于删除数组的第一项,同时减少数组的length 值,返回被删除的项

let colors = ["red", "green"]

let item = colors.shift()// 取得第一项

console.log(item) // red

console.log(colors.length) // 1

3、splice()

传入两个参数,分别是开始位置,删除元素的数量,返回包含删除元素的数组

let colors = ["red", "green", "blue"]

let removed = colors.splice(0,1)// 删除第一项

console.log(colors)// green,blue

console.log(removed)// red,只有一个元素的数组

4、slice()

slice() 用于创建一个包含原有数组中一个或多个元素的新数组,不会影响原始数组

let colors = ["red", "green", "blue", "yellow", "purple"]

let colors2 = colors.slice(1)

let colors3 = colors.slice(1, 4)

console.log(colors) // red,green,blue,yellow,purple

concole.log(colors2)// green,blue,yellow,purple

concole.log(colors3)// green,blue,yellow

参考

js在循环遍历数组中删除指定元素踩坑( foreach.. for.. for..in.. )

JS-数组遍历中删除元素的方法优化

第一次forEach循环,arr是[1, 1, 2],index是0,item是1,if条件成立, 使用splice删除了item1,arr变成[1, 2]

第二次forEach循环,arr是[1, 2],index是1,item是2,if条件不成立,使用splice无法删除了第二个重复的1

出现问题的原因就是splice删除当前数据时,导致后面的数据前移,最直接的解决办法就是i也跟着前移即可。

注意,此时使用For in遍历是不行的

原因是迭代器的i,每次都重新取值了,i--失效。

测试结果说明可以安全删除

删除步骤如下:

ar arr = [ 1, 2, 3, 4, 5 ]

//原始数组

alert("原始数组:" + arr)// 1,2,3,4,5

//删除并且返回第一个元素

注:重复以上步骤即可

一、JavaScript

简称为js,一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型;

它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML网页上使用,用来给HTML网页增加动态功能;

在1995年时,由Netscape公司的Brendan Eich,在网景导航者浏览器上首次设计实现而成。

二、js表达式:

表达式是指将常量、变量、函数、运算符和括号连接而成的式子;

根据运算结果的不同,表达式可分为算术表达式、字符表达式、和逻辑表达式。