Oggi mi sono imbattuto in uno SO question per sostituire un oggetto corrispondente all'interno di un array di oggetti.Javascript: sostituire direttamente con index vs Array.splice()
Per fare ciò, stanno trovando l'indice dell'oggetto corrispondente all'interno dell'array di oggetti usando lodash.
var users = [{user: "Kamal"}, {user: "Vivek"}, {user: "Guna"}]
var idx = _.findIndex(users, {user: "Vivek"}); // returns 1
Ora hanno usato splice() per sostituire in questo modo,
users.splice(idx, 1, {user: "Gowtham"})
ma perché non,
users[idx] = {user: "Gowtham"};
Ora la mia domanda è, non c'è alcuna ragione, non farlo o usare splice()?
Perché è così semplice da utilizzare array[index] = 'something';
. Non è vero?
E 'vero che l'utilizzo di 'array [index]' è più veloce di 'Array.splice()': http://jsperf.com/array-index-vs-splice. Ma il tuo chilometraggio può variare a seconda delle dimensioni dell'array, forse? – Terry
A meno che non si desideri ottenere il valore rimosso (che non viene eseguito qui), l'assegnazione dell'indice sarebbe più sensata e molto probabilmente più veloce. –
Ah, una differenza è che '.splice()' agirà più come '.push()' se 'idx' è al di là del' .length' dell'array, mentre l'assegnazione dell'indice estenderebbe la lunghezza dell'array. –