every 这个方法,可以去判断一下一个列表里面,是否全部都符合我们设置的规则,如果是,这个方法就会返回 true ,如果不是,就会返回 false 。
类似的还有一个 some 方法,如果列表里面有一个项目符合我们要判断的规则,就会返回 true ...
contains 这个方法,可以去判断一下列表里是否包含指定的值 ...
下面,我们去看一下这几个方法...
在 albums 里面,有三个对象 ... 我们判断一下这些对象里面是否都有 title 这个属性 ... _.every ... 先指定一下要判断的列表 ... 这里就是 albums ..
再去设置一下要判断的东西 ... 它应该是一个函数 ... 可以给它一个参数 ... 这个参数可以表示列表里面的单个项目 ... 这里我们用 album 来表示 ... 然后在这里面,用一个 return ... 再使用 Underscore 的 has 方法 ... 去判断一下对象里面,是否包含指定的属性 .. 这个对象就是 album ... 要检查的属性是 title ...
如果列表里面的每一个对象里面都有 title 这个属性,它就会返回 true ...
_.every(albums, function(album){ return _.has(album, 'title') })
回车 ... every 这个方法给我们返回来的结果是 true ... 这就表示,在 albums 里面的所有的对象,都包含 title 这个属性 ...
再去试一下返回 false 的情况 ...
要判断的条件是,对象里面的 artist 属性的值等于 Beyond ...
_.every(albums, function(album){ return album.artist === 'Beyond' })
返回的是 false ,因为最后一个对象的 artist 属性的值是 Coldplay ,不是 Beyond ...
some
some 这个方法只要有一个项目符合判断的条件,就会返回 true ... 把 every 换成 some ... Underscore 里面的很多方法都有别名,比如 every 的别名是 all ,some 的别名是 any ...
_.some(albums, function(album){ return album.artist === 'Beyond' })
回车 ... 结果是 true ... 因为 albums 里面有项目的 artist 属性的值是 Beyond ... 如果一个也没有的话,它就会返回 false ..
contains
下面我们再去试一下 contains 这个方法 ... 它可以判断列表里是否包含指定值 ... 用它去判断一下 fruits 这个要数组 ... (# 输入 fruites )
_.contains ... 要判断的列表是 fruits ... 再指定一下要查看的值 ... 这里设置成 apple ... 意思就是,看一下 fruits 这个列表里面,有没有 apple 这个值 ...
_.contains(fruits, 'apple')
返回的结果是 true ... 表示 fruits 里面包含 apple 这个值 ...