Javascript - 如何强制数组具有特定数量的元素

时间:2016-11-17 07:58:20

标签: javascript arrays stack

是否有一种简单的方法可以使数组具有特定数量的元素。 从某种意义上说,如果你向它推进更多,它就会覆盖第一个元素。

例如我想要一个数组只包含2个元素。如果我推第三个元素,它应该覆盖最早的元素(第一个)。 像堆栈一样。

2 个答案:

答案 0 :(得分:0)

您可以使用计数器并使用所需长度的模数进行插入。



function push(array, length) {
    var counter = 0;
    return function (value) {
        array[counter % length] = value;
        counter++;
    };
}

var array = [],
    pushToArray = push(array, 2);

pushToArray(1);
console.log(array);

pushToArray(2);
console.log(array);

pushToArray(3);
console.log(array);

pushToArray(4)
console.log(array);

.as-console-wrapper { max-height: 100% !important; top: 0; }




答案 1 :(得分:0)

因此,正如我上面评论的那样,你可以通过数组子类来做到这一点。以下代码段引入了一个新的Array结构,其中包含两个新方法elapsedlast。但是,我们的新push会隐藏push的真实push方法。新Array.prototype将第一个参数作为数组长度的限制,例如push将长度限制为4,结果将为[1,2,3].push(4,"a","b","c")。返回值将是数组中已删除的元素,因为我们正在使用[3,"a","b","c"]



splice