我有一组对象:
words = [{id: 1, selected: true}, {}, {},...]
我需要取消选择所有单词,我最多可以有1万个单词,所以我想知道哪个会更快:
words.filter(x => x.selected).forEach(function(w){
w.selected = false
})
或者只是:
words.forEach(function(w){
w.selected = false
})
ps:在这种情况下,我使用的onefrontend框架并不重要,因此我不需要更改数组-如果更改项目,它会自动更改。
pps: 你为什么要投票或关闭? 我对我的问题有2条不同的评论,他们说的是相反的话。
答案 0 :(得分:0)
如果您看下面的代码片段,您会发现运行它会给您带来不同的结果,即每次使用哪种功能更快。这真的取决于您,因为彼此之间不会在速度上产生很大的功能差异。
<script>
var words = [{id: 1, selected: true}, {id: 2, selected: true}, {id: 3, selected: true}, {id: 4, selected: true}, {id: 5, selected: true}, {id: 6, selected: true}, {id: 7, selected: true}, {id: 8, selected: true}, {id: 9, selected: true}, {id: 10, selected: true}];
console.time('function1');
function1();
console.timeEnd('function1');
console.time('function2');
function2();
console.timeEnd('function2');
function function1(){
words.filter(x => x.selected).forEach(function(w){
w.selected = false;
});
}
function function2(){
words.forEach(function(w){
w.selected = false;
});
}
</script>