我如何使用 lodash 检查集合中的每个项目,除了那些不符合我条件的项目?

How do I use lodash to check every item in a collection except those that dont meet my condition?

let allChecked = _.every(this.collection, this.checked);

我有这个现有代码,如果集合中的每个项目都对 checked 属性 为真,则 returns 为真。我想修改它,而不是迭代集合中的每个项目,只有在另一个 属性 上没有 true 的项目被迭代。即,集合中的项目还有另一个名为 disabled 的 属性。如果此 属性 设置为真,我想在此 _.every() 检查中完全忽略这些项目。

您只需调用 this.collection 上的 _.reject 即可删除集合中指定 属性 上的任何项目。

例如 _.every(_.reject(this.collection, 'disabled'), this.checked)

只需在短路检查中添加disabled。如果 disabledtrue 你可以跳过检查:

let allChecked = _.every(this.collection, obj => obj.disabled || this.checked(obj));