function nextInLine(arr, item) {
arr.push(item);
arr.shift();
}
var testArr = [1, 2, 3, 4, 5];
console.log("Before: " + JSON.stringify(testArr));
console.log(nextInLine(testArr, 6));
console.log("After: " + JSON.stringify(testArr));
显示的输出是
3
Before: [1,2,3,4,5]
undefined
After: [2,3,4,5,6]
我知道
arr.shift()
删除数组的第一个元素并返回从数组中删除的值。那么为什么需要在 return
之前再次添加 arr.shift()
关键字才能让整个函数返回被移除的元素。 arr.shift()
不应该足够吗,因为它本身已经返回了被删除的值?为什么前面又要加一个return关键字呢?
下面的代码在
arr.shift()
之前有 return 关键字,效果非常好。
function nextInLine(arr, item) {
arr.push(item);
return arr.shift();
}
var testArr = [1, 2, 3, 4, 5];
console.log("Before: " + JSON.stringify(testArr));
console.log(nextInLine(testArr, 6));
console.log("After: " + JSON.stringify(testArr));
显示的输出如下,其中明确返回了元素“1”。
3
Before: [1,2,3,4,5]
1
After: [2,3,4,5,6]