@orbit/utils
Version:
Core utilities for Orbit.
47 lines • 4.75 kB
JavaScript
/**
* Like the Lodash _.every function, this function takes an array and a
* predicate function and returns true or false depending on whether the
* predicate is true for every item in the array.
*/
export function every(array, predicate) {
let index = -1;
let length = array.length;
while (++index < length) {
if (!predicate(array[index], index)) {
return false;
}
}
return true;
}
/**
* Like the Lodash _.some function, this function takes an array and a predicate
* function and returns true or false depending on whether the predicate is true
* for any of the items in the array.
*/
export function some(array, predicate) {
let index = -1;
let length = array.length;
while (++index < length) {
if (predicate(array[index], index)) {
return true;
}
}
return false;
}
/**
* This function is similar to Array.prototype.find, but it returns the result
* of calling the value function rather than an item of the array.
*
* @deprecated since v0.17, remove in v0.18
*/
export function firstResult(array, valueFn) {
let index = -1;
let length = array.length;
while (++index < length) {
let result = valueFn(array[index], index);
if (result) {
return result;
}
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXlzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FycmF5cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLEtBQUssQ0FDbkIsS0FBWSxFQUNaLFNBQWtEO0lBRWxELElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ2YsSUFBSSxNQUFNLEdBQVcsS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUVsQyxPQUFPLEVBQUUsS0FBSyxHQUFHLE1BQU0sRUFBRTtRQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRTtZQUNuQyxPQUFPLEtBQUssQ0FBQztTQUNkO0tBQ0Y7SUFFRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLElBQUksQ0FDbEIsS0FBWSxFQUNaLFNBQWtEO0lBRWxELElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ2YsSUFBSSxNQUFNLEdBQVcsS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUVsQyxPQUFPLEVBQUUsS0FBSyxHQUFHLE1BQU0sRUFBRTtRQUN2QixJQUFJLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUU7WUFDbEMsT0FBTyxJQUFJLENBQUM7U0FDYjtLQUNGO0lBRUQsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsV0FBVyxDQUN6QixLQUFZLEVBQ1osT0FBNEM7SUFFNUMsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDZixJQUFJLE1BQU0sR0FBVyxLQUFLLENBQUMsTUFBTSxDQUFDO0lBRWxDLE9BQU8sRUFBRSxLQUFLLEdBQUcsTUFBTSxFQUFFO1FBQ3ZCLElBQUksTUFBTSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDMUMsSUFBSSxNQUFNLEVBQUU7WUFDVixPQUFPLE1BQU0sQ0FBQztTQUNmO0tBQ0Y7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBMaWtlIHRoZSBMb2Rhc2ggXy5ldmVyeSBmdW5jdGlvbiwgdGhpcyBmdW5jdGlvbiB0YWtlcyBhbiBhcnJheSBhbmQgYVxuICogcHJlZGljYXRlIGZ1bmN0aW9uIGFuZCByZXR1cm5zIHRydWUgb3IgZmFsc2UgZGVwZW5kaW5nIG9uIHdoZXRoZXIgdGhlXG4gKiBwcmVkaWNhdGUgaXMgdHJ1ZSBmb3IgZXZlcnkgaXRlbSBpbiB0aGUgYXJyYXkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBldmVyeShcbiAgYXJyYXk6IGFueVtdLFxuICBwcmVkaWNhdGU6IChtZW1iZXI6IGFueSwgaW5kZXg6IG51bWJlcikgPT4gYm9vbGVhblxuKTogYm9vbGVhbiB7XG4gIGxldCBpbmRleCA9IC0xO1xuICBsZXQgbGVuZ3RoOiBudW1iZXIgPSBhcnJheS5sZW5ndGg7XG5cbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICBpZiAoIXByZWRpY2F0ZShhcnJheVtpbmRleF0sIGluZGV4KSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufVxuXG4vKipcbiAqIExpa2UgdGhlIExvZGFzaCBfLnNvbWUgZnVuY3Rpb24sIHRoaXMgZnVuY3Rpb24gdGFrZXMgYW4gYXJyYXkgYW5kIGEgcHJlZGljYXRlXG4gKiBmdW5jdGlvbiBhbmQgcmV0dXJucyB0cnVlIG9yIGZhbHNlIGRlcGVuZGluZyBvbiB3aGV0aGVyIHRoZSBwcmVkaWNhdGUgaXMgdHJ1ZVxuICogZm9yIGFueSBvZiB0aGUgaXRlbXMgaW4gdGhlIGFycmF5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gc29tZShcbiAgYXJyYXk6IGFueVtdLFxuICBwcmVkaWNhdGU6IChtZW1iZXI6IGFueSwgaW5kZXg6IG51bWJlcikgPT4gYm9vbGVhblxuKTogYm9vbGVhbiB7XG4gIGxldCBpbmRleCA9IC0xO1xuICBsZXQgbGVuZ3RoOiBudW1iZXIgPSBhcnJheS5sZW5ndGg7XG5cbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICBpZiAocHJlZGljYXRlKGFycmF5W2luZGV4XSwgaW5kZXgpKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59XG5cbi8qKlxuICogVGhpcyBmdW5jdGlvbiBpcyBzaW1pbGFyIHRvIEFycmF5LnByb3RvdHlwZS5maW5kLCBidXQgaXQgcmV0dXJucyB0aGUgcmVzdWx0XG4gKiBvZiBjYWxsaW5nIHRoZSB2YWx1ZSBmdW5jdGlvbiByYXRoZXIgdGhhbiBhbiBpdGVtIG9mIHRoZSBhcnJheS5cbiAqXG4gKiBAZGVwcmVjYXRlZCBzaW5jZSB2MC4xNywgcmVtb3ZlIGluIHYwLjE4XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaXJzdFJlc3VsdChcbiAgYXJyYXk6IGFueVtdLFxuICB2YWx1ZUZuOiAobWVtYmVyOiBhbnksIGluZGV4OiBudW1iZXIpID0+IGFueVxuKTogYW55IHtcbiAgbGV0IGluZGV4ID0gLTE7XG4gIGxldCBsZW5ndGg6IG51bWJlciA9IGFycmF5Lmxlbmd0aDtcblxuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIGxldCByZXN1bHQgPSB2YWx1ZUZuKGFycmF5W2luZGV4XSwgaW5kZXgpO1xuICAgIGlmIChyZXN1bHQpIHtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICB9XG59XG4iXX0=