Freecodecamp上的“排队”练习>>

问题描述 投票:0回答:2

我不了解FreeCodeCamp上JavaScript练习的一部分。

这是主题:

在计算机科学中,队列是一种抽象的数据结构,其中的项目按顺序保留。可以在队列的后面添加新项目,而从队列的前面取下旧项目。

  • 编写一个以数组(arr)和数字(item)为参数的nextInLine函数。
  • 将数字添加到数组的末尾,然后删除数组的第一个元素。
  • nextInLine函数然后应返回已删除的元素。
  • 这里是解决方法:

function nextInLine(arr, item) {
  arr.push(item);
  var removed = arr.shift();
  return removed; 
}

这可能是非常基本的,但我不理解以下示例运行的第4 th

行上的“存储在已删除状态”。

示例运行:

  • 测试nextInLine([2,1]);运行。
  • nextInLine函数被调用。 arr变为[2]。项目变为1。
  • arr.push(item);按1到[2]。所以arr现在是[2,1]。
  • var已移除= arr.shift();删除第一个元素。所以arr现在是[1]。 2已被删除,并且存储在已删除状态
  • 返回已删除;返回2。
  • 从我的角度来看,如果2被删除,剩下的就是1,并且应该将1存储在方差中,因为当我们删除某些东西时,我们只会考虑剩下的1。

    但是我清楚地知道删除的数字是2,所以感觉好像缺少一个步骤或错误。我的逻辑奇怪吗?

我不了解FreeCodeCamp上JavaScript练习的一部分。这是主题:在计算机科学中,队列是一种抽象的数据结构,其中的项目按顺序保留。新项目可以是...

javascript
2个回答
0
投票

示例运行:

  • 测试nextInLine([2,1]);运行。

0
投票

Array.shift()删除数组中的第一项,然后返回该项

© www.soinside.com 2019 - 2024. All rights reserved.