6
今天,我遇到了一个SO question来替换对象数组内的匹配对象。Javascript:直接用索引替换vs Array.splice()
为此,他们使用lodash找到对象数组内的匹配对象的索引。
var users = [{user: "Kamal"}, {user: "Vivek"}, {user: "Guna"}]
var idx = _.findIndex(users, {user: "Vivek"}); // returns 1
现在,他们使用的拼接()来代替这个样子,
users.splice(idx, 1, {user: "Gowtham"})
,但为什么不呢,
users[idx] = {user: "Gowtham"};
现在的问题是,是否有任何理由,不这样做或使用splice()?
因为它使用起来很简单array[index] = 'something';
。不是吗?
这是事实,使用'数组[索引]'快于'Array.splice()':http://jsperf.com/array-index-vs-splice。但是,你的里程可能会有所不同,取决于阵列的大小,也许? – Terry
除非你想获得删除的值(这里没有完成),否则索引分配会更有意义,而且可能更快。 –
啊,一个区别是,如果'idx'超出数组的'.length','.splice()'将更像'.push()',而索引分配会延长数组的长度。 –