um das erste und letzte Element im Array zu entfernen

102

Wie entferne ich das erste und letzte Element in einem Array?

Beispielsweise:

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

Erwartetes Ausgabearray:

["Orange", "Apple"]
Mohan Ram
quelle
9
Dies sieht aus wie ein "weicher Ball" zum Erstellen von Links zu w3schools. Sie haben sogar dieselben Array-Elemente verwendet. ;-)
Myster

Antworten:

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. 

Alle Methoden für ein Array anzeigen.


quelle
Es ist einfacher mit jQuery UImyArray.effect( "transfer", { item: 'first&&last', to: bin});
iConnor
3
Liebe Downvoter, vielleicht möchten Sie, dass Ihre Downvotes hilfreich sind. Fügen Sie daher bitte einen Kommentar hinzu, in dem erklärt wird, was mit der Antwort nicht stimmt.
3
Dies gibt nur den Wert des entfernten (ersten oder letzten) Elements zurück, nicht das verbleibende Array
Jubin Patel
@RC. Ich möchte den Benutzer nur über die tatsächliche Funktionsweise informieren. Ich frage nach Ihrer Antwort.
Jubin Patel
2
Wie der Benutzer diese Funktion genauso verwendet, wie Sie sie schreiben, funktioniert sie definitiv ordnungsgemäß als Element zum Entfernen. ABER wenn der Benutzer sie schreibt return fruits.shift(), wird NUR das erste Element zurückgegeben und dann aus dem Array entfernt.
Jubin Patel
78

Erstellt eine 1-stufige Kopie.

fruits.slice(1, -1)

Lassen Sie das ursprüngliche Array los.

Vielen Dank an @Tim für den Hinweis auf die Rechtschreibfehler.

Anurag
quelle
1
Ich denke du meinst slice()eher als splice().
Tim Down
70
Das Schneiden von Früchten ist viel besser als das Knallen oder Verschieben von Früchten.
Pettys
2
Mit zunehmender Popularität von Redux, funktionalem Javscript und unveränderlichen Dingen ist diese Antwort viel besser
nkint
17

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

Hier bezeichnet -1 das letzte Element in einem Array und 1 das zweite Element.

Tripti Pant
quelle
Oder nur, fruits = fruits.slice(1,-1);wenn Sie keine neue Variable erstellen müssen.
Hastig Zusammenstellen
9

Ich benutze die Spleißmethode.

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

Um das letzte Element zu entfernen, können Sie dies auch folgendermaßen tun:

fruits.splice(-1, 1);

Siehe Entfernen letztes Element von Array zu mehr Kommentare über sie zu sehen.

Chinokao
quelle
4

push()Fügt am Ende eines Arrays ein neues Element hinzu.
pop()Entfernt ein Element vom Ende eines Arrays.

unshift()Fügt am Anfang eines Arrays ein neues Element hinzu.
shift()Entfernt ein Element vom Anfang eines Arrays.

Um das erste Element aus einem Array zu entfernen arr, verwenden Sie arr.shift()
Um das letzte Element aus einem Array zu entfernen arr, verwenden Siearr.pop()

Harunur Rashid
quelle
2

Sie können Array.prototype.reduce () verwenden .

Code:

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

Yosvel Quintero Arguelles
quelle
Cool zu sehen, zu reduzieren, um den ersten und letzten Gegenstand zu entfernen!
Mohan Ram
1

Um das Element aus dem Array zu entfernen, gehen Sie einfach wie folgt vor

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

Dies kann mit lodash erfolgen _.tailund _.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>

Penny Liu
quelle
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
quelle
Entfernen Sie das erste Element aus dem Array.
Vikas Pal
0

Angenommen, Sie haben eine Array-Namensliste. Die Splice () -Funktion kann zum Hinzufügen und Entfernen von Elementen in diesem Array in einem bestimmten Index verwendet werden, dh am Anfang oder am Ende oder an einem beliebigen Index. Im Gegenteil, es gibt einen anderen Funktionsnamen shift () und pop (), mit dem nur das erste und das letzte Element im Array entfernt werden können.

Dies ist die Shift-Funktion, mit der nur das erste Element des Arrays entfernt werden kann

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

Die Pop-Funktion entfernt Elemente an ihrem letzten Index aus einem Array

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

Jetzt kommt die Spleißfunktion, mit der Sie Elemente an jedem Index entfernen können

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 

Die Slice-Funktion akzeptiert zwei Parameter ( Index zu Beginn , Anzahl der verbleibenden Schritte );

Labib Hussain
quelle
-1

Sie haben die Methode Fruits.shift () verwendet, um das erste Element zu entfernen. Die für das letzte Element verwendete Fruits.pop () -Methode wird nacheinander entfernt, wenn Sie auf die Schaltfläche klicken. Fruits.slice (Startposition, Element löschen) Sie haben auch die Slice-Methode zum Entfernen des Elements im mittleren Start verwendet.

Manoj Chauhan
quelle
1
Lesen Sie dies und formatieren Sie Ihre Antwort richtig meta.stackexchange.com/questions/22186/…
isuruAb
-1

Um das erste und das letzte Element eines Arrays zu entfernen wird unter Verwendung der integrierte Methode eines Arrays dh shift()und pop()das fruits.shift()erhalten das erste Element des Arrays als „Banana“ , während fruits.pop()das letzte Element des Arrays als „Mango“ erhalten. Das verbleibende Element des Arrays ist also["Orange", "Apple"]

chisom okoye
quelle
2
Die Antwort, die Sie gegeben haben, existiert bereits in dieser Frage: hier und hier . Wenn Sie der Meinung sind, dass sie weitere Erklärungen benötigen, hinterlassen Sie bitte einen Kommentar unter der Antwort, mit der Sie nicht zufrieden sind.
Skandix
1
Das Formatieren Ihres Codes hilft ( meta.stackexchange.com/questions/22186/… )! Darüber hinaus scheint diese Antwort mit anderen identisch zu sein (z . B. stackoverflow.com/a/43327999/608312 ).
Jake Lee
Noted @JakeSteam
chisom okoye