Αφαίρεση αντικειμένου από συστοιχία χρησιμοποιώντας JavaScript

Πώς μπορώ να αφαιρέσω ένα αντικείμενο από έναν πίνακα; Θέλω να αφαιρέσω το αντικείμενο που περιλαμβάνει το όνομα Kristian από someArray. Για παράδειγμα:

someArray = [{name:"Kristian", lines:"2,5,10"},
             {name:"John", lines:"1,19,26,96"}];

Θέλω να επιτύχω:

someArray = [{name:"John", lines:"1,19,26,96"}];
Λύση

Μπορείτε να χρησιμοποιήσετε διάφορες μεθόδους για να αφαιρέσετε στοιχείο(α) από μια συστοιχία:

//1
someArray.shift(); // first element removed
//2
someArray = someArray.slice(1); // first element removed
//3
someArray.splice(0, 1); // first element removed
//4
someArray.pop(); // last element removed
//5
someArray = someArray.slice(0, a.length - 1); // last element removed
//6
someArray.length = someArray.length - 1; // last element removed

Αν θέλετε να αφαιρέσετε το στοιχείο στη θέση x, χρησιμοποιήστε:

someArray.splice(x, 1);

Ή

someArray = someArray.slice(0, x).concat(someArray.slice(-x));

Απάντηση στο σχόλιο του [@chill182][1]: μπορείτε να αφαιρέσετε ένα ή περισσότερα στοιχεία από έναν πίνακα χρησιμοποιώντας το Array.filter, ή το Array.splice σε συνδυασμό με το Array.findIndex (βλέπε [MDN][2]), π.χ.

Σχόλια (8)

Η καθαρή λύση θα ήταν να χρησιμοποιήσετε το Array.filter:

var filtered = someArray.filter(function(el) { return el.Name != "Kristian"; }); 

Το πρόβλημα με αυτό είναι ότι δεν λειτουργεί στον IE < 9. Ωστόσο, μπορείτε να συμπεριλάβετε κώδικα από μια βιβλιοθήκη Javascript (π.χ. underscore.js) που το υλοποιεί αυτό για οποιοδήποτε πρόγραμμα περιήγησης.

Σχόλια (4)

Χρήση της συνάρτησης splice σε πίνακες. Καθορίστε τη θέση του αρχικού στοιχείου και το μήκος της υποακολουθίας που θέλετε να αφαιρέσετε.

someArray.splice(pos, 1);
Σχόλια (0)