如何创建最大大小的数组?

时间:2015-11-18 22:23:51

标签: javascript arrays queue

我想创建一个不会超过5个元素的javascript数组,并将任何溢出的元素删除为队列。到目前为止,我最好的想法是覆盖数组推送方法并检查数组的当前长度是否超过5,如果是,则在添加元素后,执行array.splice(0,1)以删除最后一个元素。这是正确的方法吗?

3 个答案:

答案 0 :(得分:0)

这样的事可以吗?

var myArr = [];

function arrayPusher(data) {

  //Add the data to the front of the array.
  myArr.unshift(data);

  //After adding the element to the array,
  //if it is too long, remove the last item.
  if (myArr.length > 5) {
    myArr.pop();
  }
}

答案 1 :(得分:0)

我看不到你失去对阵列控制权的情况,但在你的长度检查功能中加array.length = 5;要简单得多。这将在一次移动中删除第5个元素之后的任何内容。

答案 2 :(得分:0)

嗯,我认为最好的想法是制作一个循环,重新使用你的功能,如下:

function onlyN_Elements(N,vector){
   if(vector.length<=N){
       return vector;
   }else{
       vector.pop();
       onlyN_Elements(N,vector);
   } 
} 

所以你总是想要做到这一点,就这样做:

a = [ 2, 3, 4, 5, 6, 7, 8];  //vector
N = 5                        //number of maximun length vector
onlyN_Elements(N,a);         // just execute the function

--> output --> console.log(a) --> a = [ 2, 3, 4, 5, 6 ]

所以使用此功能只需改变'N',如果你想改变矢量的最大长度。 ;)