Loadsh 的

    xiaoxiao2023-10-15  21

    loadsh这款插件用的人还是比较多的,好了话不多少,我遇到理解_.every的问题,下面开始吧

    _.every 返回值 (boolean) 通过 predicate 检查集合中的元素是否都返回 真值,只要 predicate 返回一次假值,遍历就停止,并返回 false。

    // 这个是里面进行遍历判断,是不是都为true, 因为null 的布尔值是false ,所以结果就是布尔值 _.every([true, 1, null, 'yes'], Boolean); // => false

    我们来看看下面这个例子吧

    var users = [ { 'user': 'barney', 'active': false }, { 'user': 'fred', 'active': false } ]; // 这个意思的是判断users数组 是不是每一个都是 包含 { 'user': 'barney', 'active': false },显然第二个不是,所以返回了 false _.every(users, { 'user': 'barney', 'active': false }); // => false // 看下面这个 ['active', false] 第一次我也很懵逼,以为这个是数组,就完全没理解,结果他是key value 的形式 因为users中 都是 'active': false 所以结果返回了true _.every(users, ['active', false]); // => true // 这个为什么是false 因为active 的value值 是false, 所以返回的就是 false了 _.every(users, 'active'); // => false

    我们来讲讲 _.every(users, [‘active’, false]); // => true 为什么 会说([‘active’, false])是 key value的形式呢,请你看一下 下面ES6中Map的用法吧,是不是感觉豁然开朗了

    const map = new Map([ ['F', 'no'], ['T', 'yes'], ]); // => Map(2) {"F" => "no", "T" => "yes"}

    那么 与 _every 功能相反的用法是 _.some

    通过 predicate 检查集合中的元素是否存在任意真值的元素,只要 predicate 返回一次真值,遍历就停止,并返回 true

    // 因为字符串 "yes" 作为布尔值返回的是true,这里是 有一个返回值是真的,就返回true _.some([null, 0, 'yes', false], Boolean); // => true var users = [ { 'user': 'barney', 'active': true }, { 'user': 'fred', 'active': false } ]; // 因为这里没有一个符合 { 'user': 'barney', 'active': false } 这个条件,所以返回了false _.some(users, { 'user': 'barney', 'active': false }); // => false // 这里是['active', false] 使用了key value 形式 {"active": false} 明显users 中有包含这个属性的 所以结果是 true _.some(users, ['active', false]); // => true // 因为active 中的value值, 有返回true的 所以它的结果是 返回了true _.some(users, 'active'); // => true

    如果这篇文章 对你有用处,点个赞呗,谢谢

    最新回复(0)