【发布时间】:2020-03-19 12:53:57
【问题描述】:
我正在尝试检查每个对象的o_ 是否存在。我用.every() 做这个。我们可以用.reduce() 做这个吗?这两者的性能对比如何?
const obj = level1.level2[level1.ID][P1];
checker = ['o_1', 'o_2', 'o_3', 'o_4'].every(key => obj[key] === undefined);
【问题讨论】:
-
您可以使用
reduce()执行此操作,但every()将在谓词第一次失败时停止迭代,而reduce()将继续迭代每个值。 -
您当然可以使用
reduce()来执行此操作,但是它会传递整个数组,即使它会在第一个元素处发现缺少o_,而every()会得到在发生故障时短路,因此执行得更快。
标签: javascript reactjs lodash