foop
Version:
interfaces that describe their intentions.
49 lines (46 loc) • 3.58 kB
JavaScript
var curry = require('../fp/curry')
/**
* map all values in an array to see if all match
* Returns `true` if all elements of the list match the predicate, `false` if there are any that don't.
*
* @alias every
* @name all
* @memberOf conditional
* @since 4.0.1
*
* @TODO `not(some)` ?
*
* @curried
* @param {Function} predicate match the value
* @param {Array} list to match against predicate
* @return {boolean} all match predicate
*
* {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/every mozilla-every}
* {@link https://github.com/jashkenas/underscore/blob/master/underscore.js#L262 underscore-all}
* {@link https://github.com/ramda/ramda/blob/master/src/all.js ramda-all}
* @see {@link ramda-all}
* @see {@link underscore-all}
* @see {@link mozilla-every}
* @see fp/curry
*
* @sig (a -> Boolean) -> [a] -> Boolean
*
* @example
*
* const allBoolean = all(x => typeof x === 'boolean'q)
*
* allBoolean([true])
* //=> true
*
* allBoolean([1])
* //=> false
*
*/
var all = curry(2, function (predicate, list) {
for (var i in list) {
if (!predicate(list[i])) { return false }
}
return true
})
module.exports = all
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxsLmpzIiwic291cmNlcyI6WyJhbGwuanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgY3VycnkgPSByZXF1aXJlKCcuLi9mcC9jdXJyeScpXG5cbi8qKlxuICogbWFwIGFsbCB2YWx1ZXMgaW4gYW4gYXJyYXkgdG8gc2VlIGlmIGFsbCBtYXRjaFxuICogUmV0dXJucyBgdHJ1ZWAgaWYgYWxsIGVsZW1lbnRzIG9mIHRoZSBsaXN0IG1hdGNoIHRoZSBwcmVkaWNhdGUsIGBmYWxzZWAgaWYgdGhlcmUgYXJlIGFueSB0aGF0IGRvbid0LlxuICpcbiAqIEBhbGlhcyBldmVyeVxuICogQG5hbWUgYWxsXG4gKiBAbWVtYmVyT2YgY29uZGl0aW9uYWxcbiAqIEBzaW5jZSA0LjAuMVxuICpcbiAqIEBUT0RPIGBub3Qoc29tZSlgID9cbiAqXG4gKiBAY3VycmllZFxuICogQHBhcmFtICB7RnVuY3Rpb259IHByZWRpY2F0ZSBtYXRjaCB0aGUgdmFsdWVcbiAqIEBwYXJhbSAge0FycmF5fSBsaXN0IHRvIG1hdGNoIGFnYWluc3QgcHJlZGljYXRlXG4gKiBAcmV0dXJuIHtib29sZWFufSBhbGwgbWF0Y2ggcHJlZGljYXRlXG4gKlxuICoge0BsaW5rIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0FycmF5L2V2ZXJ5IG1vemlsbGEtZXZlcnl9XG4gKiB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL2phc2hrZW5hcy91bmRlcnNjb3JlL2Jsb2IvbWFzdGVyL3VuZGVyc2NvcmUuanMjTDI2MiB1bmRlcnNjb3JlLWFsbH1cbiAqIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vcmFtZGEvcmFtZGEvYmxvYi9tYXN0ZXIvc3JjL2FsbC5qcyByYW1kYS1hbGx9XG4gKiBAc2VlIHtAbGluayByYW1kYS1hbGx9XG4gKiBAc2VlIHtAbGluayB1bmRlcnNjb3JlLWFsbH1cbiAqIEBzZWUge0BsaW5rIG1vemlsbGEtZXZlcnl9XG4gKiBAc2VlIGZwL2N1cnJ5XG4gKlxuICogQHNpZyAoYSAtPiBCb29sZWFuKSAtPiBbYV0gLT4gQm9vbGVhblxuICpcbiAqIEBleGFtcGxlXG4gKlxuICogICAgY29uc3QgYWxsQm9vbGVhbiA9IGFsbCh4ID0+IHR5cGVvZiB4ID09PSAnYm9vbGVhbidxKVxuICpcbiAqICAgIGFsbEJvb2xlYW4oW3RydWVdKVxuICogICAgLy89PiB0cnVlXG4gKlxuICogICAgYWxsQm9vbGVhbihbMV0pXG4gKiAgICAvLz0+IGZhbHNlXG4gKlxuICovXG5jb25zdCBhbGwgPSBjdXJyeSgyLCAocHJlZGljYXRlLCBsaXN0KSA9PiB7XG4gIGZvciAobGV0IGkgaW4gbGlzdCkge1xuICAgIGlmICghcHJlZGljYXRlKGxpc3RbaV0pKSByZXR1cm4gZmFsc2VcbiAgfVxuICByZXR1cm4gdHJ1ZVxufSlcblxubW9kdWxlLmV4cG9ydHMgPSBhbGxcbiJdLCJuYW1lcyI6WyJjb25zdCIsImxldCJdLCJtYXBwaW5ncyI6IkFBQUFBLEdBQUssQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBdUNwQ0EsR0FBSyxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsQ0FBQyxFQUFFLFNBQUEsQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLEFBQUc7RUFDeEMsS0FBS0MsR0FBRyxDQUFDLENBQUMsSUFBSSxJQUFJLEVBQUU7SUFDbEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFBLE9BQU8sS0FBSyxFQUFBO0dBQ3RDO0VBQ0QsT0FBTyxJQUFJO0NBQ1osQ0FBQzs7QUFFRixNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUc7In0=