【问题标题】:remove first element from array and return the array minus the first element从数组中删除第一个元素并返回数组减去第一个元素
【发布时间】:2016-10-31 23:45:12
【问题描述】:

var myarray = ["item 1", "item 2", "item 3", "item 4"];

//removes the first element of the array, and returns that element.
alert(myarray.shift());
//alerts "item 1"

//removes the last element of the array, and returns that element.
alert(myarray.pop());
//alerts "item 4"
  1. 如何删除第一个数组但返回减去第一个元素的数组
  2. 在我的示例中,当我删除第一个元素时,我应该得到 "item 2", "item 3", "item 4"

【问题讨论】:

  • alert(array.slice(1))array.shift(); alert(array);
  • @Thomas 当我使用myarray.shift() 时返回"item 1" 我想要的是返回"item 2", "item 3", "item 4"
  • 请阅读我写的全部代码,使用shift()
  • 如果您需要创建没有第一个元素的新数组,请使用切片。
  • 只是再添加一个 :) 解构:[,...myarray] = myarray;

标签: javascript jquery arrays


【解决方案1】:

这应该删除第一个元素,然后你可以返回剩余的:

var myarray = ["item 1", "item 2", "item 3", "item 4"];
    
myarray.shift();
alert(myarray);

正如其他人所建议的,您也可以使用 slice(1);

var myarray = ["item 1", "item 2", "item 3", "item 4"];
  
alert(myarray.slice(1));

【讨论】:

  • 请注意,slice(1) 不会从数组中“删除第一个元素”。相反,它会创建一个 new 数组,其中包含数组中除第一个以外的所有值的浅拷贝。
  • 如果你有一个数组数组,使用 slice(1) 很有用。
【解决方案2】:

为什么不使用 ES6?

 var myarray = ["item 1", "item 2", "item 3", "item 4"];
 const [, ...rest] = myarray;
 console.log(rest)

【讨论】:

  • 我喜欢这个想法,但首先它将是一个未使用的常量。
  • 可以使用const [,...rest] = myarray =O =D 解决这个问题
  • 喜欢这个,因为它不会修改初始数组 ref,它会让 PR 审阅者去 ¯_(ツ)_/¯
【解决方案3】:

试试这个

    var myarray = ["item 1", "item 2", "item 3", "item 4"];

    //removes the first element of the array, and returns that element apart from item 1.
    myarray.shift(); 
    console.log(myarray); 

【讨论】:

  • 你试过这个吗?查看我更新后的 sn-p 问题,它将返回 "item 1"
【解决方案4】:

这可以用 lodash _.tail 一行完成:

var arr = ["item 1", "item 2", "item 3", "item 4"];
console.log(_.tail(arr));
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.min.js"></script>

【讨论】:

    【解决方案5】:

    myarray.splice(1) 将从数组中删除第一项……并返回更新后的数组(在您的示例中为['item 2', 'item 3', 'item 4'])。

    https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice

    【讨论】:

      【解决方案6】:

      你可以使用 array.slice(0,1) // 删除第一个索引并返回数组。

      【讨论】:

      • 不删除第一个索引,创建一个没有第一个元素的副本。原始数组没有被修改。
      • 另外,slice(0,1) 将返回一个包含仅第一项的数组。相反,您需要调用 slice(1) 来获取包含 除第一个以外的所有项目 的数组,如已接受的答案中所示
      猜你喜欢
      • 2017-02-25
      • 1970-01-01
      • 2020-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多