在JavaScript中推送新对象并弹出对象数组的第一个对象

时间:2019-07-19 08:07:43

标签: javascript angular typescript multidimensional-array

我正在尝试创建一个对象数组,该数组的长度始终为5,因此首先推送5个对象,当数组的长度达到5时,弹出第一个对象并将新对象推送到同一数组上。并且此操作将以一定间隔(以5秒为间隔)继续进行。

var arr = [{
        name: 'ABC', // Pop the first object when new object is push ..
    }, {
        name: 'ABC',
    }, {
        name: 'ABC',
    }, {
        name: 'ABC',
    }, {
        name: 'ABC',
}];

arr.push({ name: 'ABCNew'});

这可能吗?伙计们,请指导我如何实现此功能?

感谢您的帮助,非常感谢!

2 个答案:

答案 0 :(得分:1)

尝试

const add = (arr, ele) => [ele, ...arr].slice(0,5);

console.log(add([1,2,3], 6))
console.log(add([1,2,3,4,5], 6))
console.log(add([{ name: 'ABC' }, { name: 'ABC', }, { name: 'ABC', }, { name: 'ABC', }, { name: 'ABC', }], { name: 'ABCNew'}))
 

答案 1 :(得分:1)

我想您需要一个可以检查数组长度并根据长度推送和删除对象的函数

var arr = [];
function pusher(obj){
   arr.push(obj);
   if(arr.length > 5){
       arr.shift();
   }
}