考虑一下,我有一个动态数组,其中我的项目每秒保持递增。 所以我想在数组达到60时删除数组中的最后30个项目,并保留其余部分。也就是说,我只希望在数组中维护30个项目并删除较旧的项目。
array=[1,2,3,4...........60] //Remove last 30 and show new 30 items
array=[21,22,23...30]
请建议我如何实现此目标。我的Code
答案 0 :(得分:3)
如果要在30号之后删除元素
array.length=30;
如果要删除除最后30个以外的所有内容
array.splice(0, array.length - 30);
这是两者的演示(为了输出的可读性,使用10而不是30)
const array = Array.from({length:60}, (_, i) => i);
array.length = 10;
console.log(JSON.stringify(array));
const array2 = Array.from({length:60}, (_, i) => i);
array2.splice(0, array2.length - 10);
console.log(JSON.stringify(array2));
答案 1 :(得分:1)
如果要保留最后N个项目,请使用以下代码:
let numberOfItemsToRemain = 5;
let array = [1,2,3,4,5,6,7,8,9,10];
let size = array.length;
array = array.splice(size-numberOfItemsToRemain, size);
console.log(array);
如果要保留前N个项目,请使用以下代码:
let numberOfItemsToRemain = 5;
let array = [1,2,3,4,5,6,7,8,9,10];
array = array.splice(0, numberOfItemsToRemain);
console.log(array);