diff --git a/src/utils/common.js b/src/utils/common.js index 0178cd45..72881b1c 100644 --- a/src/utils/common.js +++ b/src/utils/common.js @@ -13,4 +13,32 @@ export function range(start, num, step) { val += step; } return list; +} + +/** + * Return a closure that compares a Number argument with specified Number + * @param withNumber Number to compare with + * @returns {Function} (i) => {} + */ +export function numberEquals(withNumber) { + return i => i === withNumber; +} + +/** + * Return a closure that compares a second Number argument with specified Number + * @param withNumber Number to compare with + * @returns {Function} (i) => {} + */ +export function indexEquals(withNumber) { + return (_, i) => i === withNumber; +} + +/** + * Return a reduce function + * [['spring', 'Весена'], ['autumn', 'Осень']] -> 'Весна' or 'Осень' depend on byCondition result + * @param byCondition + * @param map + */ +export function translateAnItem(byCondition, map){ + return (result, item) => byCondition(item) ? map(item): map(result) } \ No newline at end of file