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

Posted

技术标签:

【中文标题】删除数组中的第一个和最后一个元素【英文标题】:to remove first and last element in array 【发布时间】:2011-06-06 08:38:37 【问题描述】:

如何?

例如:

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

预期的输出数组:

["Orange", "Apple"]

【问题讨论】:

这看起来像是一个用于创建指向 w3schools 的链接的“软球”,您甚至使用了相同的数组元素。 ;-) 【参考方案1】:

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

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

fruits.slice(a, b)
第一个参数表示从索引a 开始,而不需要索引a - 1。 第二个参数表示切片在索引b - 1 中结束,并且不需要索引b

所以通过上面的解释,如果我们放a = 1,这意味着我们不想要第一个元素,如果我们放b = latest,这意味着切片将在索引b - 1结束,我们不知道索引b .

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

✅所以最后的答案是:

fruits.slice(1, -1)

【讨论】:

【参考方案2】:

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

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

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

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 

切片函数接受两个参数(开始索引要走的步数);

【讨论】:

【参考方案3】:

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

代码:

const fruits = ['Banana', 'Orange', 'Apple', 'Mango'],
      result = fruits.reduce((a, c, i, array) => 0 === i || array.length - 1 === i ? a : [...a, c], []);

console.log(result);

【讨论】:

酷看 reduce 删除第一项和最后一项!【参考方案4】:

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

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

【讨论】:

如果您不必创建新变量,则只需 fruits = fruits.slice(1,-1);【参考方案5】:

这可以通过 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>

【讨论】:

【参考方案6】:

删除数组的第一个和最后一个元素是通过使用数组的内置方法,即shift()pop()fruits.shift()将数组的第一个元素作为“香蕉”而@987654328 @ 获取数组的最后一个元素为“Mango”。所以数组的剩余元素将是["Orange", "Apple"]

【讨论】:

您给出的答案已经存在于这个问题中:here 和here。如果您觉得他们需要更多解释,请在您不满意的答案下方留言。 格式化您的代码会有所帮助 (meta.stackexchange.com/questions/22186/…)!此外,这个答案似乎与其他答案相同(例如***.com/a/43327999/608312)。 注明@JakeSteam【参考方案7】:

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

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

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

【讨论】:

【参考方案8】:

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

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

【讨论】:

【参考方案9】:
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"];

【讨论】:

从数组中删除第一个元素。【参考方案10】:

你用过 Fruits.shift() 方法删除第一个元素。 如果您使用按钮单击,用于最后一个元素的 Fruits.pop() 方法将一个一个删除。 Fruits.slice(start position, delete element)你也使用slice方法在中间开始删除元素。

【讨论】:

阅读本文并正确格式化您的答案meta.stackexchange.com/questions/22186/…【参考方案11】:

我使用拼接方法。

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 了解更多相关信息。

【讨论】:

【参考方案12】:
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.

【讨论】:

使用 jQuery UI 更容易myArray.effect( "transfer", item: 'first&&last', to: bin); 亲爱的反对者,您可能希望您的反对意见有所帮助,因此请添加评论,说明答案有什么问题.. 这将只返回被删除的(第一个或最后一个)元素的值,而不是剩余的数组 @RC。只是想通知用户有关功能的实际工作。我在质疑你的回答。 像用户一样使用这个函数,就像你写的一样,它肯定可以作为删除元素正常工作,但是如果用户写return fruits.shift(),它将只返回第一个元素,然后从数组中删除。【参考方案13】:

创建 1 级深拷贝。

fruits.slice(1, -1)

放开原来的数组。

感谢@Tim 指出拼写勘误。

【讨论】:

我认为您的意思是 slice() 而不是 splice() 切片水果比爆裂或移动水果要好得多。 随着 redux、功能性 javscript 和不可变事物的日益普及,这个答案要好得多

以上是关于删除数组中的第一个和最后一个元素的主要内容,如果未能解决你的问题,请参考以下文章

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

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

php获取并删除数组的第一个和最后一个元素

php获取并删除数组的第一个和最后一个元素

js怎么获取数组里的第一个元素

获取数组中的第一个和最后一个元素