如何删除数组元素?

use*_*688 35 javascript arrays

是否可以根据索引删除数组的内容?如果我有这样的2个数组:

Array1包含15个值,我想获得最后10个值.

在删除元素之前:

array1 == [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]
Run Code Online (Sandbox Code Playgroud)

删除元素后:

array1 == [5,6,7,8,9,10,11,12,13,14]
Run Code Online (Sandbox Code Playgroud)

包含15个值的Array2然后我只想获得前10个值.

在删除元素之前:

array2 == [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]
Run Code Online (Sandbox Code Playgroud)

删除元素后:

array2 == [0,1,2,3,4,5,6,7,8,9]
Run Code Online (Sandbox Code Playgroud)

但是必须满足条件:

如果数组只包含3个元素则不需要丢弃数组中的元素,以及数组只包含10个元素.但如果数组包含10个以上的元素,则会丢弃多余的元素.

Guf*_*ffa 66

保留前十项:

if (theArray.length > 10) theArray = theArray.slice(0, 10);
Run Code Online (Sandbox Code Playgroud)

或者,可能不那么直观:

if (theArray.length > 10) theArray.length = 10;
Run Code Online (Sandbox Code Playgroud)

保留最后十个项目:

if (theArray.length > 10) theArray = theArray.slice(theArray.length - 10, 10);
Run Code Online (Sandbox Code Playgroud)

您可以使用第一个参数的负值来指定长度 - n,并且省略第二个参数会将所有项目都指向结尾,因此也可以将其写为:

if (theArray.length > 10) theArray = theArray.slice(-10);
Run Code Online (Sandbox Code Playgroud)

splice方法用于删除项目并替换为其他项目,但如果您未指定任何新项目,则可以仅用于删除项目.保留前十项:

if (theArray.length > 10) theArray.splice(10, theArray.length - 10);
Run Code Online (Sandbox Code Playgroud)

保留最后十个项目:

if (theArray.length > 10) theArray.splice(0, theArray.length - 10);
Run Code Online (Sandbox Code Playgroud)

  • 请记住,splice也会编辑原始数组,而切片则不会. (5认同)

Aar*_*lla 17

使用该功能array.splice(index, count)删除count元素index.要从末尾删除元素,请使用array1.splice(array1.length - 10, 1);


Alf*_*red 5

看到 splice()

splice()方法通过删除现有元素和/或添加新元素来更改数组的内容.

如果要创建新的数组使用,它将不会创建新数组slice.