删除数组中的第一个和最后一个元素

时间:2011-01-10 06:06:28

标签: javascript arrays

如何删除数组中的第一个和最后一个元素?

例如:

var fruits = ["Banana", "Orange", "Apple", "Mango"];

预期输出数组:

["Orange", "Apple"]

13 个答案:

答案 0 :(得分:120)

fruits.shift();  // Removes the first element from an array and returns only that element.
fruits.pop();    // Removes the last element from an array and returns only that element. 

See all methods for an Array.

答案 1 :(得分:62)

创建1级深层副本。

fruits.slice(1, -1)

放开原始阵列。

感谢@Tim指出拼写错误。

答案 2 :(得分:14)

var fruits = ["Banana", "Orange", "Apple", "Mango"];
var newFruits = fruits.slice(1, -1);
console.log(newFruits); //  ["Orange", "Apple"];

这里,-1表示数组中的最后一个元素,1表示第二个元素。

答案 3 :(得分:8)

我使用拼接方法。

fruits.splice(0, 1); // Removes first array element

var lastElementIndex = fruits.length-1; // Gets last element index

fruits.splice(lastElementIndex, 1); // Removes last array element

要删除最后一个元素,您也可以这样做:

fruits.splice(-1, 1);

请参阅Remove last item from array以查看有关它的更多评论。

答案 4 :(得分:2)

push()在数组的末尾添加一个新元素 pop()从数组末尾删除一个元素。

unshift()在数组的开头添加一个新元素 shift()从数组的开头删除一个元素。

要从数组arr中移除第一个元素,请使用arr.shift()
要从数组arr中删除最后一个元素,请使用arr.pop()

答案 5 :(得分:1)

您可以使用Array.prototype.reduce()

代码:



const fruits = ['Banana', 'Orange', 'Apple', 'Mango'],
      result = fruits.reduce((a, c, i, arr) => (0 < i && i < arr.length - 1 && a.push(c), a), []);

console.log(result);
&#13;
&#13;
&#13;

答案 6 :(得分:0)

var resident_array =  ["RC_FRONT", "RC_BACK", "RC_BACK"];
var remove_item = "RC_FRONT";
resident_array = $.grep(resident_array, function(value) {
            return value != remove_item;
    });
resident_array = ["RC_BACK", "RC_BACK"];

答案 7 :(得分:0)

要从数组中删除元素很简单,只需执行以下操作

let array_splited = [].split('/');
array_splited.pop()
array_splited.join('/')

答案 8 :(得分:0)

这可以通过lodash _.tail_.dropRight完成:

var fruits = ["Banana", "Orange", "Apple", "Mango"];
console.log(_.dropRight(_.tail(fruits)));
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.min.js"></script>

答案 9 :(得分:0)

假设您有一个名为list的数组。 Splice()函数可用于在特定索引(即可以在开头,结尾或任何索引处)中添加和删除数组中的项目。相反,还有另一个函数名称 shift() pop(),它们只能删除数组中的第一项和最后一项。

这是Shift函数,仅能删除数组的第一个元素

var item = [ 1,1,2,3,5,8,13,21,34 ]; // say you have this number series 
item.shift(); // [ 1,2,3,5,8,13,21,34 ];

Pop Function从数组的最后一个索引处删除项目

item.pop(); // [ 1,2,3,5,8,13,21 ];

现在有了拼接功能,您可以通过该功能删除任何索引处的项目

item.slice(0,1); // [ 2,3,5,8,13,21 ] removes the first object
item.slice(item.length-1,1); // [ 2,3,5,8,13 ] removes the last object 

slice函数接受两个参数(索引开头要执行的步骤);

答案 10 :(得分:0)

为了避免变异和改变源数组,ReactJS开发者不能使用popshift函数,因为两者都会改变源数组,而这种改变是非常深的错误的根源。

最好的方法是使用 slice JavaScript 内置函数。此函数将创建源数组的一个切片并为您返回一个新数组,它也接受负索引号,这意味着第一个负数是数组中的最新项。所以:

fruits.slice(a, b)
  • 第一个参数表示从索引 a 开始,不需要索引 a - 1
  • 第二个参数表示切片以索引 b - 1 结尾,不需要索引 b

所以根据上面的解释,如果我们放 a = 1 意味着我们不想要第一个元素,如果我们放 b = latest 则意味着切片将以索引 b - 1 结束,我们不想要' t 什么索引b

slice 函数中最新元素的索引是什么?正确的-1

✅ 所以最后的答案是:

fruits.slice(1, -1)

答案 11 :(得分:-1)

你用过 Fruits.shift()方法将第一个元素删除。 如果您使用按钮单击,则用于最后一个元素的Fruits.pop()方法逐个删除。  Fruits.slice(起始位置,删除元素)您还在中间开始使用了slice方法删除元素。

答案 12 :(得分:-2)

要删除数组的第一个元素和最后一个元素,方法是使用数组的内置方法,即shift()pop()fruits.shift()获得数组的第一个元素为fruits.pop()期间的“香蕉”获得数组的最后一个元素为“芒果”。因此数组的其余元素将为["Orange", "Apple"]