[英]"Stand in Line" exercise on Freecodecamp
我不明白 FreeCodeCamp 上 JavaScript 练习的一部分。
这是主题:
在计算机科学中,队列是一种抽象的数据结构,其中项目按顺序排列。 可以在队列的后面添加新项目,而从队列的前面取出旧项目。
这是解决方案:
function nextInLine(arr, item) { arr.push(item); var removed = arr.shift(); return removed; }
这可能是非常基本的,但我不明白以下示例运行的第 4行中的“存储在已删除中”。
示例运行:
从我的角度来看,如果 2 已被删除,剩下的就是 1,而 1 应该存储在方差中,因为当我们删除某些内容时,我们会排除并仅考虑余数 1。
但是我明明明白去掉的数字是2,所以感觉少了一步或者说错了。 我的逻辑很奇怪吗?
示例运行:
您只将
arr
传递给您的 function。item
未定义
不,它没有。
arr
仍然是 [2, 1],item
仍然是未定义的。
再次,不。
arr.push(item)
将undefined
推送到数组,所以现在是[2,1,undefined]
除了数组现在是 [1, undefined],这是正确的。
正确的。
shift
移除并返回数组的第一个元素。
Array.shift() 删除数组中的第一项,并返回该项。
例如,您有一个数组: const yourArr = ["a", "b", "c", "d"]
yourArr.shift()
删除“a”并返回它。 现在 yourArr = ["b","c","d"]
const yourArr = ["a","b","c","d"] console.log(yourArr.shift()) console.log(yourArr)
function nextInLine(arr, item){ // Only change code below this line arr.push(item); return arr.shift(); // Only change code above this line } // Setup const testArr = [1, 2, 3, 4, 5]; // Display code console.log("Before: " + JSON.stringify(testArr)); console.log(nextInLine(testArr, 6)); console.log("After: " + JSON.stringify(testArr));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.