如何删除数组元素?

时间:2010-12-07 08:29:15

标签: javascript arrays

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

Array1包含15个值,我想得到最后10个值。

删除元素之前:

array1 == [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]

删除元素后:

array1 == [5,6,7,8,9,10,11,12,13,14]

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

删除元素之前:

array2 == [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]

删除元素后:

array2 == [0,1,2,3,4,5,6,7,8,9]

但必须满足条件:

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

4 个答案:

答案 0 :(得分:61)

保留前十项:

if (theArray.length > 10) theArray = theArray.slice(0, 10);

或者,可能不太直观:

if (theArray.length > 10) theArray.length = 10;

保留最后十项:

if (theArray.length > 10) theArray = theArray.slice(theArray.length - 10, 10);

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

if (theArray.length > 10) theArray = theArray.slice(-10);

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

if (theArray.length > 10) theArray.splice(10, theArray.length - 10);

保留最后十项:

if (theArray.length > 10) theArray.splice(0, theArray.length - 10);

答案 1 :(得分:15)

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

答案 2 :(得分:5)

请参阅splice()

  

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

如果要使用slice创建新数组,则不会创建新数组。

答案 3 :(得分:3)

很难回答你的问题,但请尝试以下方法:

array = array.slice(-10);

// or

last10 = array.splice(-10);
// array has first array.length-10 elements