Gab*_*ery 6 javascript arrays performance
我有一个关于性能的问题。假设我有大量名为 的对象records。我的目标是创建一个集合(这确保我具有不同的值),其中包含满足特定条件的value记录的值 - 。我有两种可能的方法可以产生所需的结果:recordsif(rec.otherValue === 'something specific')
选项1:
const set = new Set();
records.foreach(rec => {
if(rec.otherValue === 'something specific'){
set.add(rec.value);
}
});
Run Code Online (Sandbox Code Playgroud)
第一个选项很简单。如果满足特定条件,我会遍历所有记录并将所需的值添加到集合中。
选项2:
const set = new Set();
const filteredRecords = records.filter(rec => rec.otherValue === 'something specific');
filteredRecords.foreach(rec => {
set.add(rec.value);
});
Run Code Online (Sandbox Code Playgroud)
第二个选项首先过滤大量records数组,以获得更具体的对象数组(从数百条记录到不到 10 条),然后将所需的值添加到 Set 中。
两个选项都会产生完全相同的结果。我的问题是:哪一个性能最好?我的目标是使该功能尽可能快。如果有第三种甚至更快的选择,请分享。
那这个呢?我认为它具有很高的可读性,这比性能更重要。
const condition = val => val === 'something specific'
const set = new Set(records.filter(condition))
Run Code Online (Sandbox Code Playgroud)