Die zweitmeisten upvoted Antwort hier ist auf der engsten Spur möglich zu einem Einzeiler jQuery-Methode des beabsichtigten Verhaltens der OP will, aber sie stolperte am Ende ihrer Code, und es hat einen Fehler. Wenn Ihr Element entfernt werden, ist nicht tatsächlich in das Array, wird das letzte Element entfernt werden.
Einige haben dieses Problem bemerkt, und einige haben Möglichkeiten zum Durchschleifen angeboten, um dies zu verhindern. Ich biete die kürzeste, sauberste Methode an, die ich finden konnte, und ich habe unter ihrer Antwort kommentiert, wie sie ihren Code nach dieser Methode korrigieren können.
var x = [1, 2, "bye", 3, 4];
var y = [1, 2, 3, 4];
var removeItem = "bye";
// Removing an item that exists in array
x.splice( $.inArray(removeItem,x), $.inArray(removeItem,x) ); // This is the one-liner used
// Removing an item that DOESN'T exist in array
y.splice( $.inArray(removeItem,y), $.inArray(removeItem,y) ); // Same usage, different array
// OUTPUT -- both cases are expected to be [1,2,3,4]
alert(x + '\n' + y);
Array x wird das Element "bye" leicht entfernen, und array y wird nicht berührt werden.
Die Verwendung des Arguments $.inArray(removeItem,array)
als zweites Argument ist eigentlich die zu spleißende Länge. Da das Element nicht gefunden wurde, ergibt dies den Wert array.splice(-1,-1);
was nur dazu führt, dass nichts gespleißt wird... und das alles, ohne eine Schleife dafür schreiben zu müssen.