Hôm nay, tôi đã xem qua một SO question để thay thế một đối tượng phù hợp bên trong mảng đối tượng.Javascript: thay thế trực tiếp bằng chỉ mục vs Array.splice()
Để làm như vậy, họ đang tìm chỉ mục của đối tượng phù hợp bên trong mảng đối tượng sử dụng lodash.
var users = [{user: "Kamal"}, {user: "Vivek"}, {user: "Guna"}]
var idx = _.findIndex(users, {user: "Vivek"}); // returns 1
Bây giờ họ đã sử dụng mối nối() để thay thế như thế này,
users.splice(idx, 1, {user: "Gowtham"})
nhưng tại sao không,
users[idx] = {user: "Gowtham"};
Bây giờ câu hỏi của tôi là, Có lý do nào đó, không làm như vậy hoặc sử dụng splice()?
Vì việc sử dụng array[index] = 'something';
rất đơn giản. Phải không?
Đúng là sử dụng 'mảng [index]' nhanh hơn 'Array.splice()': http://jsperf.com/array-index-vs-splice. Nhưng mileage của bạn có thể khác nhau tùy thuộc vào kích thước của mảng, có lẽ? – Terry
Trừ khi bạn muốn nhận được giá trị đã xóa (không được thực hiện ở đây), việc chỉ định chỉ mục sẽ có ý nghĩa hơn và có khả năng nhanh hơn. –
Ah, một sự khác biệt là '.splice()' sẽ hoạt động giống '.push()' nếu 'idx' vượt quá' .length' của mảng, trong khi chỉ mục chỉ định sẽ mở rộng chiều dài của mảng. –