当前位置:  开发笔记 > 编程语言 > 正文

是否有方法链接.push和.shift数组方法?

如何解决《是否有方法链接.push和.shift数组方法?》经验,为你挑选了2个好方法。

这是我的代码:

var myArr = [1,2,3,4,5];
function queue(arr, item) {
  return arr.push(item).shift();
}

我正在尝试创建一个函数队列,它将"数组"和"项"作为参数.我需要

    将项添加到数组的末尾

    删除数组的第一个元素

    返回已删除的元素.

我的代码不起作用.你能帮我搞清楚吗?



1> Oriol..:

只是不要链接方法调用:

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];



2> 小智..:

因为arr.push返回数组的长度,所以你不能像那样链接移位

干脆就这么做

function queue(arr, item) {
  arr.push(item);
  return arr.shift();
}

推荐阅读
地之南_816
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有