遍历对象循环并更改属性js

时间:2018-07-10 13:56:24

标签: javascript

我有一组对象:

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条不同的评论,他们说的是相反的话。

1 个答案:

答案 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>