理解 lodash `.every` 行为
understanding lodash `.every` behavior
我有一个非常简单的例子,但我不明白为什么它不能像我预期的那样工作。
const items = { custom: null, preset: null }
const val = ._every(items, null)
这个returns false
为什么????
这段代码不应该意味着,如果对象中的每个 属性 都满足这个条件,那么 return 是真的吗?
对于对象,您应该使用如下谓词:
const items = { custom: null, preset: null }
console.log(_.every(items , e=> e === 42));
console.log(_.every(items , e=> e === null));
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min.js" integrity="sha512-WFN04846sdKMIP5LKNphMaWzU7YpMyCU245etK3g/2ARYbPK9Ub18eG+ljU96qKRCWh+quCY7yefSmlkQw1ANQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
@Michael 你是对的。文档没有明确提及它。但是如果你检查它的方法签名,它期望 Function
作为第二个参数,并且在那些例子中,有一些简短的用法版本。它们是:
// The _.matches
iteratee shorthand.
_.every(users, { 'user': 'barney', 'active': false }); // => false
// The _.matchesProperty
iteratee shorthand.
_.every(users, ['active', false]);
// => true
// The _.property
iteratee shorthand.
_.every(users, 'active'); // => false
所以你的用法是 _.property
iteratee shorthand。它需要一个 属性 名称。为 属性 名称提供 null
值会得到结果:false
.
我有一个非常简单的例子,但我不明白为什么它不能像我预期的那样工作。
const items = { custom: null, preset: null }
const val = ._every(items, null)
这个returns false
为什么????
这段代码不应该意味着,如果对象中的每个 属性 都满足这个条件,那么 return 是真的吗?
对于对象,您应该使用如下谓词:
const items = { custom: null, preset: null }
console.log(_.every(items , e=> e === 42));
console.log(_.every(items , e=> e === null));
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min.js" integrity="sha512-WFN04846sdKMIP5LKNphMaWzU7YpMyCU245etK3g/2ARYbPK9Ub18eG+ljU96qKRCWh+quCY7yefSmlkQw1ANQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
@Michael 你是对的。文档没有明确提及它。但是如果你检查它的方法签名,它期望 Function
作为第二个参数,并且在那些例子中,有一些简短的用法版本。它们是:
// The
_.matches
iteratee shorthand._.every(users, { 'user': 'barney', 'active': false }); // => false
// The
_.matchesProperty
iteratee shorthand._.every(users, ['active', false]);
// => true
// The
_.property
iteratee shorthand._.every(users, 'active'); // => false
所以你的用法是 _.property
iteratee shorthand。它需要一个 属性 名称。为 属性 名称提供 null
值会得到结果:false
.