是否可以根据索引删除数组的内容?如果我有这样的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个以上的元素,则会丢弃多余的元素。
答案 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)
答案 3 :(得分:3)
很难回答你的问题,但请尝试以下方法:
array = array.slice(-10);
// or
last10 = array.splice(-10);
// array has first array.length-10 elements