Heute stieß ich auf eine SO question, um ein passendes Objekt im Array von Objekten zu ersetzen.Javascript: Ersetzen Sie direkt mit Index vs Array.splice()
Dazu suchen sie den Index des übereinstimmenden Objekts im Array von Objekten mit lodash.
var users = [{user: "Kamal"}, {user: "Vivek"}, {user: "Guna"}]
var idx = _.findIndex(users, {user: "Vivek"}); // returns 1
Jetzt verwendet sie splice() wie folgt zu ersetzen,
users.splice(idx, 1, {user: "Gowtham"})
aber warum nicht,
users[idx] = {user: "Gowtham"};
Nun meine Frage ist, gibt es keinen Grund, dies nicht zu tun oder splice() zu verwenden?
Weil es so einfach zu bedienen ist array[index] = 'something';
. Ist es nicht?
Es stimmt, dass mit 'array [index]' ist schneller als 'Array.splice()': http://jsperf.com/array-index-vs-splice. Aber Ihr Kilometerstand kann variieren, abhängig von der Größe des Arrays, vielleicht? – Terry
Wenn Sie den entfernten Wert nicht erhalten möchten (was hier nicht gemacht wird), wäre die Indexzuweisung sinnvoller und wahrscheinlich schneller. –
Ah, ein Unterschied ist, dass '.splice()' mehr wie '.push()' agiert, wenn 'idx' jenseits der' .length' des Arrays liegt, während die Index-Zuweisung die Länge des Arrays erweitern würde. –