这是我的代码:
var myArr = [1,2,3,4,5]; function queue(arr, item) { return arr.push(item).shift(); }
我正在尝试创建一个函数队列,它将"数组"和"项"作为参数.我需要
将项添加到数组的末尾
删除数组的第一个元素
返回已删除的元素.
我的代码不起作用.你能帮我搞清楚吗?
只是不要链接方法调用:
function queue(arr, item) { arr.push(item); return arr.shift(); }
或者,如果您想要一个声明,
function queue(arr, item) { return arr.push(item), arr.shift(); }
或者,如果你够疯狂,你可以继承Array并添加一个可链接的推送:
class MyArray extends Array { chainablePush(item) { this.push(item); return this; } } var myArr = new MyArray(1,2,3); myArr.chainablePush(4).shift(); // 1 myArr; // MyArray [2,3,4];
因为arr.push返回数组的长度,所以你不能像那样链接移位
干脆就这么做
function queue(arr, item) { arr.push(item); return arr.shift(); }