如何从数组中删除除最后N个元素之外的所有元素?

tit*_*ans 11 javascript

我有一个阵列.我有一个变量,显示数组中必须留有多少元素.有没有这样做的功能?例:

var arr = [1, 2, 3, 4, 5];
var n = 2;
arr = someFunction(n); // arr = [4, 5];
Run Code Online (Sandbox Code Playgroud)

我想要一个包含最后一个n元素的数组.

Cra*_*aig 25

切片方法就是你想要的.它返回一个新对象,因此您必须用新的对象替换现有对象.

arr = arr.slice(-1 * n);
Run Code Online (Sandbox Code Playgroud)

或者,使用修改现有数组splice().

arr.splice(0, arr.length - n);
Run Code Online (Sandbox Code Playgroud)

拼接效率更高,因为它不是复制元素.

  • 而不是`-1*n`,你可以做`-n`. (12认同)
  • 只是为了澄清这对某人是否没有意义:“splice”将返回第一组元素,但它也会从实际数组中**删除**它们。更多信息:https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/splice (4认同)
  • 当然.无论你喜欢什么. (2认同)