【问题标题】:Creating a Fixed-Length Queue Array in Javascript在 Javascript 中创建一个固定长度的队列数组
【发布时间】:2020-11-07 01:23:38
【问题描述】:

我知道这是一个基本问题,我对 JS 的了解有限。是否有另一种方法可以通过队列功能保持数组长度固定。数组不断接收数据我想总是删除数组的第一个元素?

var a=Math.random;
var array=[];

if (array.length < 4) {
array.push(a);
} else {
array.shift();
}
console.log("array",array);

我希望如果有这样的事情:

var a=Math.random;
var array=[];
array.length=4
array.push(a);
console.log(array);

【问题讨论】:

  • 不,没有这样的原生功能。您必须自己制作一些东西或使用具有该功能的库。

标签: javascript arrays queue


【解决方案1】:

你基本上已经在你的第一个代码块中得到了它,它只需要稍微调整逻辑。如果是队列,那么您应该始终推送新号码。然后,您应该测试长度是否大于 4,如果是,则使用 .shift() 像您在此处所做的那样删除第一个元素。

【讨论】:

  • 我想在不使用 if 语句的情况下移动数组?
  • 我明白了,所以如果你想将一个数组截断为最后四个元素(或者如果它的长度为 4 或更少,则保持不变)你可以使用array = array.slice(-4)。没有 if 语句。
  • 我读到了array.slice。所以我应该只在其中坑 array.slice 将使我的数组长度保持在 4
  • 好吧,我会把它放在你在第二个代码块中放置array.length=4(无效代码,因为长度属性是只读的)的同一个地方......除了我猜push语句应该走在它之前,而不是之后。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-18
  • 2011-12-27
  • 2011-06-17
  • 1970-01-01
相关资源
最近更新 更多