Dziś natknąłem się na SO question, aby zastąpić pasujący obiekt wewnątrz tablicy obiektów.Javascript: zastąpienie bezpośrednio indeksem vs Array.splice()
Aby to zrobić, znajdują indeksy pasującego obiektu wewnątrz tablicy obiektów przy użyciu lodash.
var users = [{user: "Kamal"}, {user: "Vivek"}, {user: "Guna"}]
var idx = _.findIndex(users, {user: "Vivek"}); // returns 1
Teraz używali splice(), aby zastąpić tak,
users.splice(idx, 1, {user: "Gowtham"})
ale dlaczego nie,
users[idx] = {user: "Gowtham"};
Teraz moje pytanie brzmi, czy istnieje jakikolwiek powód, aby tego nie robić lub użyć splice()?
Ponieważ jest tak prosty w użyciu array[index] = 'something';
. Czyż nie?
Prawdą jest, że za pomocą 'tablica [indeks] jest szybszy niż' 'Array.splice()': http://jsperf.com/array-index-vs-splice. Ale czy twój przebieg może się różnić w zależności od wielkości tablicy? – Terry
Jeśli nie chcesz uzyskać usuniętej wartości (co nie jest tutaj wykonywane), przypisanie indeksu będzie bardziej sensowne i najprawdopodobniej będzie szybsze. –
Ah, jedną różnicą jest to, że '.splice()' będzie działać bardziej jak '.push()' jeśli 'idx' jest poza' .length' tablicy, podczas gdy indeksowanie może wydłużyć długość tablicy. –