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


102

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

例如:

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

预期的输出数组:

["Orange", "Apple"]

9
这看起来像一个“软球”,用于创建到w3schools的链接,您甚至使用了相同的数组元素。;-)
Myster2012年

Answers:


142
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. 

查看数组的所有方法。


使用jQuery UI更加轻松myArray.effect( "transfer", { item: 'first&&last', to: bin});
iConnor 2013年

3
亲爱的downvoters,您可能希望downvotes是有帮助的,所以请添加注释解释什么是错的答案..

3
这将仅返回已删除(第一个或最后一个)元素的值,而不返回剩余的数组
Jubin Patel 2015年

@RC。只是想通知用户有关功能的实际工作。我在问你的答案。
朱宾·帕特尔

2
就像用户使用此函数一样,它与您编写该函数一样,可以作为remove元素正常使用,但是,如果用户编写此函数,return fruits.shift()它将仅返回第一个元素,然后从数组中删除。
朱宾·帕特尔

79

创建1级深层副本。

fruits.slice(1, -1)

放开原始数组。

感谢@Tim指出拼写勘误表。


1
我想你的意思slice()不是splice()
Tim Down'1

71
切片水果比爆裂或转移水果更好。
小资

2
随着redux,功能性脚本和不可变内容的日益普及,这个答案要好得多
nkint 2016年

17

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

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


或者只是fruits = fruits.slice(1,-1);在不必创建新变量的情况下。
Hastig Zusammenstellen'Apr 11'18

9

我使用拼接方法。

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

请参阅从数组中删除最后一项以查看有关它的更多评论。


4

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

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

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



1

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

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

1

可以使用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>


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

从数组中删除第一个元素。
vikas pal

0

假设您有一个名为list的数组。的剪接()函数可以被用于添加并在特定索引即阵列,可以是在开始时或在结束时或在任何索引中移除项。相反,还有另一个函数名称shift()pop(),它们只能删除数组中的第一项和最后一项。

这是Shift Function,它只能删除数组的第一个元素

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函数从数组的最后一个索引处删除项目

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函数接受两个参数(以索引开头要执行的步数);


-1

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


1
阅读此内容并正确设置
isuruAb

-1

要移除的阵列的第一个和最后一个元素是通过使用内置在阵列即方法shift()pop()所述fruits.shift()而得到的数组作为“香蕉”的第一个元素fruits.pop()获取数组为“芒果”的最后一个元素。因此数组的其余元素将是["Orange", "Apple"]


2
您给出的答案已经存在于此问题中:此处此处。如果您觉得他们需要更多解释,请在您不满意的答案下发表评论。
Skandix

1
格式化代码会有所帮助(meta.stackexchange.com/questions/22186/…)!此外,此答案似乎与其他答案相同(例如stackoverflow.com/a/43327999/608312)。
杰克·李

注意@JakeSteam
chisom okoye
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.