lodash
Методы «массива»
_.chunk(array, [size=1])
Создаёт массив элементов, разделённых на группы длиной size. Если array не может быть чётко разделен, последний фрагмент будет содержать оставшиеся элементы.
Since
3.0.0
Arguments
-
array(Array): Массив для обработки. -
[size=1](number): Длина каждого фрагмента
Returns
(Array): Возвращает новый массив фрагментов.
Example
_.chunk(['a', 'b', 'c', 'd'], 2); // => [['a', 'b'], ['c', 'd']] _.chunk(['a', 'b', 'c', 'd'], 3); // => [['a', 'b', 'c'], ['d']]
_.compact(array)
Создаёт массив со всеми ложными значениями, удалёнными. Значения false, null, 0, "", undefined, и NaN являются ложными.
Since
0.1.0
Arguments
-
array(Array): Массив для уплотнения.
Returns
(Array): Возвращает новый массив отфильтрованных значений.
Example
_.compact([0, 1, false, 2, '', 3]); // => [1, 2, 3]
_.concat(array, [values])
Создаёт новый массив, конкатенируя array с любыми дополнительными массивами и/или значениями.
Since
4.0.0
Arguments
-
array(Array): Массив для конкатенации. -
[values](...*): Значения для конкатенации.
Returns
(Array): Возвращает новый конкатенированный массив.
Example
var array = [1]; var other = _.concat(array, 2, [3], [[4]]); console.log(other); // => [1, 2, 3, [4]] console.log(array); // => [1]
_.difference(array, [values])
Создаёт массив значений array, не включённых в другие заданные массивы, используя SameValueZero для сравнения на равенство. Порядок и ссылки на результирующие значения определяются первым массивом.
Примечание: В отличие от _.pullAll, этот метод возвращает новый массив.
Since
0.1.0
Arguments
-
array(Array): Массив для проверки. -
[values](...Array): Значения для исключения.
Returns
(Array): Возвращает новый массив отфильтрованных значений.
Example
_.difference([2, 1], [2, 3]); // => [1]
_.differenceBy(array, [values], [iteratee=_.identity])
Этот метод похож на _.difference, за исключением того, что он принимает iteratee, который вызывается для каждого элемента array и values для генерации критерия, по которому они сравниваются. Порядок и ссылки на результирующие значения определяются первым массивом. Итератор вызывается с одним аргументом:
(value).
Примечание: В отличие от _.pullAllBy, этот метод возвращает новый массив.
Since
4.0.0
Arguments
-
array(Array): Массив для проверки. -
[values](...Array): Значения для исключения. -
[iteratee=_.identity](Function): Итератор, вызываемый для каждого элемента.
Returns
(Array): Возвращает новый массив отфильтрованных значений.
Example
_.differenceBy([2.1, 1.2], [2.3, 3.4], Math.floor);
// => [1.2]
// The `_.property` iteratee shorthand.
_.differenceBy([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x');
// => [{ 'x': 2 }]
_.differenceWith(array, [values], [comparator])
Этот метод похож на _.difference, за исключением того, что он принимает comparator, который вызывается для сравнения элементов array с values. Порядок и ссылки на результирующие значения определяются первым массивом. Компаратор вызывается с двумя аргументами: (arrVal, othVal).
Примечание: В отличие от _.pullAllWith, этот метод возвращает новый массив.
Since
4.0.0
Arguments
-
array(Array): Массив для проверки. -
[values](...Array): Значения для исключения. -
[comparator](Function): Компаратор, вызываемый для каждого элемента.
Returns
(Array): Возвращает новый массив отфильтрованных значений.
Example
var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];
_.differenceWith(objects, [{ 'x': 1, 'y': 2 }], _.isEqual);
// => [{ 'x': 2, 'y': 1 }]
_.drop(array, [n=1])
Создаёт срез array с n элементами, удалёнными с начала.
Since
0.5.0
Arguments
-
array(Array): Массив для запроса. -
[n=1](number): Количество элементов для удаления.
Returns
(Array): Возвращает срез array.
Example
_.drop([1, 2, 3]); // => [2, 3] _.drop([1, 2, 3], 2); // => [3] _.drop([1, 2, 3], 5); // => [] _.drop([1, 2, 3], 0); // => [1, 2, 3]
_.dropRight(array, [n=1])
Создаёт срез array с n элементами, удалёнными с конца.
Since
3.0.0
Arguments
-
array(Array): Массив для запроса. -
[n=1](number): Количество элементов для удаления.
Returns
(Array): Возвращает срез array.
Example
_.dropRight([1, 2, 3]); // => [1, 2] _.dropRight([1, 2, 3], 2); // => [1] _.dropRight([1, 2, 3], 5); // => [] _.dropRight([1, 2, 3], 0); // => [1, 2, 3]
_.dropRightWhile(array, [predicate=_.identity])
Создаёт срез array, исключая элементы, удалённые с конца. Элементы удаляются до тех пор, пока predicate не вернёт ложное значение. Предикат вызывается с тремя аргументами: (value, index, array).
Since
3.0.0
Arguments
-
array(Array): Массив для запроса. -
[predicate=_.identity](Function): Функция, вызываемая на каждой итерации.
Returns
(Array): Возвращает срез array.
Example
var users = [
{ 'user': 'barney', 'active': true },
{ 'user': 'fred', 'active': false },
{ 'user': 'pebbles', 'active': false }
];
_.dropRightWhile(users, function(o) { return !o.active; });
// => objects for ['barney']
// The `_.matches` iteratee shorthand.
_.dropRightWhile(users, { 'user': 'pebbles', 'active': false });
// => objects for ['barney', 'fred']
// The `_.matchesProperty` iteratee shorthand.
_.dropRightWhile(users, ['active', false]);
// => objects for ['barney']
// The `_.property` iteratee shorthand.
_.dropRightWhile(users, 'active');
// => objects for ['barney', 'fred', 'pebbles']
_.dropWhile(array, [predicate=_.identity])
Создаёт срез array, исключая элементы, удалённые с начала. Элементы удаляются до тех пор, пока predicate не вернёт ложное значение. Предикат вызывается с тремя аргументами: (value, index, array).
Since
3.0.0
Arguments
-
array(Array): Массив для запроса. -
[predicate=_.identity](Function): Функция, вызываемая на каждой итерации.
Returns
(Array): Возвращает срез array.
Example
var users = [
{ 'user': 'barney', 'active': false },
{ 'user': 'fred', 'active': false },
{ 'user': 'pebbles', 'active': true }
];
_.dropWhile(users, function(o) { return !o.active; });
// => objects for ['pebbles']
// The `_.matches` iteratee shorthand.
_.dropWhile(users, { 'user': 'barney', 'active': false });
// => objects for ['fred', 'pebbles']
// The `_.matchesProperty` iteratee shorthand.
_.dropWhile(users, ['active', false]);
// => objects for ['pebbles']
// The `_.property` iteratee shorthand.
_.dropWhile(users, 'active');
// => objects for ['barney', 'fred', 'pebbles']
_.fill(array, value, [start=0], [end=array.length])
Заполняет элементы array значением value с start до, но не включая, end.
Примечание: Этот метод изменяет array.
Since
3.2.0
Arguments
-
array(Array): Массив для заполнения. -
value(*): Значение для заполненияarray. -
[start=0](number): Начальная позиция. -
[end=array.length](number): Конечная позиция.
Returns
(Array): Возвращает array.
Example
var array = [1, 2, 3]; _.fill(array, 'a'); console.log(array); // => ['a', 'a', 'a'] _.fill(Array(3), 2); // => [2, 2, 2] _.fill([4, 6, 8, 10], '*', 1, 3); // => [4, '*', '*', 10]
_.findIndex(array, [predicate=_.identity], [fromIndex=0])
Этот метод похож на _.find, за исключением того, что он возвращает индекс первого элемента, для которого predicate возвращает истинное значение, вместо самого элемента.
Since
1.1.0
Arguments
-
array(Array): Массив для проверки. -
[predicate=_.identity](Function): Функция, вызываемая на каждой итерации. -
[fromIndex=0](number): Индекс, с которого начинать поиск.
Returns
(number): Возвращает индекс найденного элемента, иначе -1.
Example
var users = [
{ 'user': 'barney', 'active': false },
{ 'user': 'fred', 'active': false },
{ 'user': 'pebbles', 'active': true }
];
_.findIndex(users, function(o) { return o.user == 'barney'; });
// => 0
// The `_.matches` iteratee shorthand.
_.findIndex(users, { 'user': 'fred', 'active': false });
// => 1
// The `_.matchesProperty` iteratee shorthand.
_.findIndex(users, ['active', false]);
// => 0
// The `_.property` iteratee shorthand.
_.findIndex(users, 'active');
// => 2
_.findLastIndex(array, [predicate=_.identity], [fromIndex=array.length-1])
Этот метод похож на _.findIndex, за исключением того, что он итерирует по элементам collection справа налево.
Since
2.0.0
Arguments
-
array(Array): Массив для проверки. -
[predicate=_.identity](Function): Функция, вызываемая на каждой итерации. -
[fromIndex=array.length-1](number): Индекс, с которого начинать поиск.
Returns
(number): Возвращает индекс найденного элемента, иначе -1.
Example
var users = [
{ 'user': 'barney', 'active': true },
{ 'user': 'fred', 'active': false },
{ 'user': 'pebbles', 'active': false }
];
_.findLastIndex(users, function(o) { return o.user == 'pebbles'; });
// => 2
// The `_.matches` iteratee shorthand.
_.findLastIndex(users, { 'user': 'barney', 'active': true });
// => 0
// The `_.matchesProperty` iteratee shorthand.
_.findLastIndex(users, ['active', false]);
// => 2
// The `_.property` iteratee shorthand.
_.findLastIndex(users, 'active');
// => 0
_.flatten(array)
Выравнивает array на один уровень глубины.
Since
0.1.0
Arguments
-
array(Array): Массив для сглаживания.
Returns
(Array): Возвращает новый сглаженный массив.
Example
_.flatten([1, [2, [3, [4]], 5]]); // => [1, 2, [3, [4]], 5]
_.flattenDeep(array)
Рекурсивно сглаживает array.
Since
3.0.0
Arguments
-
array(Array): Массив для сглаживания.
Returns
(Array): Возвращает новый сглаженный массив.
Example
_.flattenDeep([1, [2, [3, [4]], 5]]); // => [1, 2, 3, 4, 5]
_.flattenDepth(array, [depth=1])
Рекурсивно сглаживает array до depth раз.
Since
4.4.0
Arguments
-
array(Array): Массив для сглаживания. -
[depth=1](number): Максимальная глубина рекурсии.
Returns
(Array): Возвращает новый сглаженный массив.
Example
var array = [1, [2, [3, [4]], 5]]; _.flattenDepth(array, 1); // => [1, 2, [3, [4]], 5] _.flattenDepth(array, 2); // => [1, 2, 3, [4], 5]
_.fromPairs(pairs)
Обратное _.toPairs; этот метод возвращает объект, составленный из пар ключ-значение pairs.
Since
4.0.0
Arguments
-
pairs(Array): Пары ключ-значение.
Returns
(Object): Возвращает новый объект.
Example
_.fromPairs([['a', 1], ['b', 2]]);
// => { 'a': 1, 'b': 2 }
_.head(array)
Возвращает первый элемент array.
Since
0.1.0
Aliases
_.first
Arguments
-
array(Array): Массив для запроса.
Returns
(*): Возвращает первый элемент array.
Example
_.head([1, 2, 3]); // => 1 _.head([]); // => undefined
_.indexOf(array, value, [fromIndex=0])
Возвращает индекс, по которому найдено первое вхождение value в array с использованием SameValueZero для сравнения на равенство. Если fromIndex отрицательное, оно используется как смещение от конца array.
Since
0.1.0
Arguments
-
array(Array): Массив для проверки. -
value(*): Значение для поиска. -
[fromIndex=0](number): Индекс, с которого начинать поиск.
Returns
(number): Возвращает индекс найденного значения, иначе -1.
Example
_.indexOf([1, 2, 1, 2], 2); // => 1 // Search from the `fromIndex`. _.indexOf([1, 2, 1, 2], 2, 2); // => 3
_.initial(array)
Возвращает все элементы, кроме последнего, из array.
Since
0.1.0
Arguments
-
array(Array): Массив для запроса.
Returns
(Array): Возвращает срез array.
Example
_.initial([1, 2, 3]); // => [1, 2]
_.intersection([arrays])
Создает массив уникальных значений, которые включены во все заданные массивы, используя SameValueZero для сравнения на равенство. Порядок и ссылки на результирующие значения определяются первым массивом.
Since
0.1.0
Arguments
-
[arrays](...Array): Массивы для проверки.
Returns
(Array): Возвращает новый массив пересекающихся значений.
Example
_.intersection([2, 1], [2, 3]); // => [2]
_.intersectionBy([arrays], [iteratee=_.identity])
Этот метод похож на _.intersection, за исключением того, что он принимает iteratee, который вызывается для каждого элемента каждого arrays для генерации критерия, по которому они сравниваются. Порядок и ссылки на результирующие значения определяются первым массивом. Итерируемая функция вызывается с одним аргументом:
(value).
Since
4.0.0
Arguments
-
[arrays](...Array): Массивы для проверки. -
[iteratee=_.identity](Function): Итерируемая функция, вызываемая для каждого элемента.
Returns
(Array): Возвращает новый массив пересекающихся значений.
Example
_.intersectionBy([2.1, 1.2], [2.3, 3.4], Math.floor);
// => [2.1]
// The `_.property` iteratee shorthand.
_.intersectionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');
// => [{ 'x': 1 }]
_.intersectionWith([arrays], [comparator])
Этот метод похож на _.intersection, за исключением того, что он принимает comparator, который вызывается для сравнения элементов arrays. Порядок и ссылки на результирующие значения определяются первым массивом. Функция сравнения вызывается с двумя аргументами: (arrVal, othVal).
Since
4.0.0
Arguments
-
[arrays](...Array): Массивы для проверки. -
[comparator](Function): Функция сравнения, вызываемая для каждого элемента.
Returns
(Array): Возвращает новый массив пересекающихся значений.
Example
var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];
var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];
_.intersectionWith(objects, others, _.isEqual);
// => [{ 'x': 1, 'y': 2 }]
_.join(array, [separator=','])
Преобразует все элементы в array в строку, разделенную separator.
Since
4.0.0
Arguments
-
array(Array): Массив для преобразования. -
[separator=','](string): Разделитель элементов.
Returns
(string): Возвращает объединенную строку.
Example
_.join(['a', 'b', 'c'], '~'); // => 'a~b~c'
_.last(array)
Возвращает последний элемент array.
Since
0.1.0
Arguments
-
array(Array): Массив для запроса.
Returns
(*): Возвращает последний элемент array.
Example
_.last([1, 2, 3]); // => 3
_.lastIndexOf(array, value, [fromIndex=array.length-1])
Этот метод похож на _.indexOf, за исключением того, что он итерирует элементы array справа налево.
Since
0.1.0
Arguments
-
array(Array): Массив для проверки. -
value(*): Значение для поиска. -
[fromIndex=array.length-1](number): Индекс, с которого начинать поиск.
Returns
(number): Возвращает индекс найденного значения, иначе -1.
Example
_.lastIndexOf([1, 2, 1, 2], 2); // => 3 // Search from the `fromIndex`. _.lastIndexOf([1, 2, 1, 2], 2, 2); // => 1
_.nth(array, [n=0])
Возвращает элемент с индексом n из array. Если n отрицательное, возвращается n-й элемент с конца.
Since
4.11.0
Arguments
-
array(Array): Массив для запроса. -
[n=0](number): Индекс возвращаемого элемента.
Returns
(*): Возвращает n-й элемент array.
Example
var array = ['a', 'b', 'c', 'd']; _.nth(array, 1); // => 'b' _.nth(array, -2); // => 'c';
_.pull(array, [values])
Удаляет все заданные значения из array с использованием SameValueZero для сравнения на равенство.
Примечание: В отличие от _.without, этот метод изменяет array. Используйте _.remove для удаления элементов из массива по предикату.
Since
2.0.0
Arguments
-
array(Array): Массив для изменения. -
[values](...*): Значения для удаления.
Returns
(Array): Возвращает array.
Example
var array = ['a', 'b', 'c', 'a', 'b', 'c']; _.pull(array, 'a', 'c'); console.log(array); // => ['b', 'b']
_.pullAll(array, values)
Этот метод похож на _.pull, за исключением того, что он принимает массив значений для удаления.
Примечание: В отличие от _.difference, этот метод изменяет array.
Since
4.0.0
Arguments
-
array(Array): Массив для изменения. -
values(Array): Значения для удаления.
Returns
(Array): Возвращает array.
Example
var array = ['a', 'b', 'c', 'a', 'b', 'c']; _.pullAll(array, ['a', 'c']); console.log(array); // => ['b', 'b']
_.pullAllBy(array, values, [iteratee=_.identity])
Этот метод похож на _.pullAll, за исключением того, что он принимает iteratee, который вызывается для каждого элемента array и values для генерации критерия, по которому они сравниваются. Итерируемая функция вызывается с одним аргументом: (value).
Примечание: В отличие от _.differenceBy, этот метод изменяет array.
Since
4.0.0
Аргументы
-
array(Array): Массив для изменения. -
values(Array): Значения для удаления. -
[iteratee=_.identity](Function): Итерируемая функция, вызываемая для каждого элемента.
Возвращает
(Array): Возвращает array.
Пример
var array = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }];
_.pullAllBy(array, [{ 'x': 1 }, { 'x': 3 }], 'x');
console.log(array);
// => [{ 'x': 2 }]
_.pullAllWith(array, values, [comparator])
Этот метод похож на _.pullAll, за исключением того, что он принимает comparator, который вызывается для сравнения элементов array с values. Функция сравнения вызывается с двумя аргументами: (arrVal, othVal).
Примечание: В отличие от _.differenceWith, этот метод изменяет array.
Since
4.6.0
Аргументы
-
array(Array): Массив для изменения. -
values(Array): Значения для удаления. -
[comparator](Function): Функция сравнения, вызываемая для каждого элемента.
Возвращает
(Array): Возвращает array.
Пример
var array = [{ 'x': 1, 'y': 2 }, { 'x': 3, 'y': 4 }, { 'x': 5, 'y': 6 }];
_.pullAllWith(array, [{ 'x': 3, 'y': 4 }], _.isEqual);
console.log(array);
// => [{ 'x': 1, 'y': 2 }, { 'x': 5, 'y': 6 }]
_.pullAt(array, [indexes])
Удаляет элементы из array соответствующие indexes и возвращает массив удаленных элементов.
Примечание: В отличие от _.at, этот метод изменяет array.
Since
3.0.0
Аргументы
-
array(Array): Массив для изменения. -
[indexes](...(number|number[])): Индексы элементов для удаления.
Возвращает
(Array): Возвращает новый массив удаленных элементов.
Пример
var array = ['a', 'b', 'c', 'd']; var pulled = _.pullAt(array, [1, 3]); console.log(array); // => ['a', 'c'] console.log(pulled); // => ['b', 'd']
_.remove(array, [predicate=_.identity])
Удаляет все элементы из array, для которых predicate возвращает true, и возвращает массив удаленных элементов. Функция предиката вызывается с тремя аргументами: (value, index, array).
Примечание: В отличие от _.filter, этот метод изменяет array. Используйте _.pull для удаления элементов из массива по значению.
Since
2.0.0
Аргументы
-
array(Array): Массив для изменения. -
[predicate=_.identity](Function): Функция, вызываемая для каждой итерации.
Возвращает
(Array): Возвращает новый массив удаленных элементов.
Пример
var array = [1, 2, 3, 4];
var evens = _.remove(array, function(n) {
return n % 2 == 0;
});
console.log(array);
// => [1, 3]
console.log(evens);
// => [2, 4]
_.reverse(array)
Разворачивает array, так что первый элемент становится последним, второй элемент становится предпоследним и так далее.
Примечание: Этот метод изменяет array и основан на Array#reverse.
Since
4.0.0
Аргументы
-
array(Array): Массив для изменения.
Возвращает
(Array): Возвращает array.
Пример
var array = [1, 2, 3]; _.reverse(array); // => [3, 2, 1] console.log(array); // => [3, 2, 1]
_.slice(array, [start=0], [end=array.length])
Создает срез array от start до, но не включая, end.
Примечание: Этот метод используется вместо Array#slice для обеспечения возврата плотных массивов.
Since
3.0.0
Аргументы
-
array(Array): Массив для среза. -
[start=0](number): Начальная позиция. -
[end=array.length](number): Конечная позиция.
Возвращает
(Array): Возвращает срез array.
_.sortedIndex(array, value)
Использует бинарный поиск для определения наименьшего индекса, в который value должен быть вставлен в array для поддержания его порядка сортировки.
Since
0.1.0
Аргументы
-
array(Array): Отсортированный массив для проверки. -
value(*): Значение для оценки.
Возвращает
(number): Возвращает индекс, в который value должен быть вставлен в array.
Пример
_.sortedIndex([30, 50], 40); // => 1
_.sortedIndexBy(array, value, [iteratee=_.identity])
Этот метод похож на _.sortedIndex, за исключением того, что он принимает iteratee, который вызывается для value и каждого элемента array для вычисления их ранга сортировки. Итерируемая функция вызывается с одним аргументом: (value).
Since
4.0.0
Аргументы
-
array(Array): Отсортированный массив для проверки. -
value(*): Значение для оценки. -
[iteratee=_.identity](Function): Итерируемая функция, вызываемая для каждого элемента.
Возвращает
(number): Возвращает индекс, в который value должен быть вставлен в array.
Пример
var objects = [{ 'x': 4 }, { 'x': 5 }];
_.sortedIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });
// => 0
// The `_.property` iteratee shorthand.
_.sortedIndexBy(objects, { 'x': 4 }, 'x');
// => 0
_.sortedIndexOf(array, value)
Этот метод похож на _.indexOf, за исключением того, что он выполняет бинарный поиск в отсортированном array.
Since
4.0.0
Аргументы
-
array(Array): Массив для проверки. -
value(*): Значение для поиска.
Возвращает
(number): Возвращает индекс найденного значения, иначе -1.
Пример
_.sortedIndexOf([4, 5, 5, 5, 6], 5); // => 1
_.sortedLastIndex(array, value)
Этот метод похож на _.sortedIndex, за исключением того, что он возвращает наибольший индекс, в который value должен быть вставлен в array для поддержания его порядка сортировки.
Since
3.0.0
Аргументы
-
array(Array): Отсортированный массив для проверки. -
value(*): Значение для оценки.
Возвращает
(number): Возвращает индекс, в который value должен быть вставлен в array.
Пример
_.sortedLastIndex([4, 5, 5, 5, 6], 5); // => 4
_.sortedLastIndexBy(array, value, [iteratee=_.identity])
Этот метод похож на _.sortedLastIndex, за исключением того, что он принимает iteratee, который вызывается для value и каждого элемента array для вычисления их ранга сортировки. Итерируемая функция вызывается с одним аргументом: (value).
Since
4.0.0
Аргументы
-
array(Array): Отсортированный массив для проверки. -
value(*): Значение для оценки. -
[iteratee=_.identity](Function): Итерируемая функция, вызываемая для каждого элемента.
Возвращает
(number): Возвращает индекс, в который value должен быть вставлен в array.
Пример
var objects = [{ 'x': 4 }, { 'x': 5 }];
_.sortedLastIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });
// => 1
// The `_.property` iteratee shorthand.
_.sortedLastIndexBy(objects, { 'x': 4 }, 'x');
// => 1
_.sortedLastIndexOf(array, value)
Этот метод похож на _.lastIndexOf, за исключением того, что он выполняет бинарный поиск в отсортированном array.
Since
4.0.0
Аргументы
-
array(Array): Массив для проверки. -
value(*): Значение для поиска.
Возвращает
(number): Возвращает индекс найденного значения, иначе -1.
Пример
_.sortedLastIndexOf([4, 5, 5, 5, 6], 5); // => 3
_.sortedUniq(array)
Этот метод похож на _.uniq, за исключением того, что он разработан и оптимизирован для отсортированных массивов.
Since
4.0.0
Аргументы
-
array(Array): Массив для проверки.
Возвращает
(Array): Возвращает новый массив без дубликатов.
Пример
_.sortedUniq([1, 1, 2]); // => [1, 2]
_.sortedUniqBy(array, [iteratee])
Этот метод похож на _.uniqBy, за исключением того, что он разработан и оптимизирован для отсортированных массивов.
Since
4.0.0
Arguments
-
array(Array): Массив для проверки. -
[iteratee](Function): Итерируемая функция, вызываемая для каждого элемента.
Returns
(Array): Возвращает новый массив без дубликатов.
Example
_.sortedUniqBy([1.1, 1.2, 2.3, 2.4], Math.floor); // => [1.1, 2.3]
_.tail(array)
Возвращает все элементы, кроме первого, из array.
Since
4.0.0
Arguments
-
array(Array): Массив для запроса.
Returns
(Array): Возвращает срез array.
Example
_.tail([1, 2, 3]); // => [2, 3]
_.take(array, [n=1])
Создает срез array с n элементами, взятыми с начала.
Since
0.1.0
Arguments
-
array(Array): Массив для запроса. -
[n=1](number): Количество элементов для взятия.
Returns
(Array): Возвращает срез array.
Example
_.take([1, 2, 3]); // => [1] _.take([1, 2, 3], 2); // => [1, 2] _.take([1, 2, 3], 5); // => [1, 2, 3] _.take([1, 2, 3], 0); // => []
_.takeRight(array, [n=1])
Создает срез array с n элементами, взятыми с конца.
Since
3.0.0
Arguments
-
array(Array): Массив для запроса. -
[n=1](number): Количество элементов для взятия.
Returns
(Array): Возвращает срез array.
Example
_.takeRight([1, 2, 3]); // => [3] _.takeRight([1, 2, 3], 2); // => [2, 3] _.takeRight([1, 2, 3], 5); // => [1, 2, 3] _.takeRight([1, 2, 3], 0); // => []
_.takeRightWhile(array, [predicate=_.identity])
Создает срез array с элементами, взятыми с конца. Элементы берутся до тех пор, пока predicate не вернет ложное значение. Предикат вызывается с тремя аргументами: (value, index, array).
Since
3.0.0
Arguments
-
array(Array): Массив для запроса. -
[predicate=_.identity](Function): Функция, вызываемая при каждой итерации.
Returns
(Array): Возвращает срез array.
Example
var users = [
{ 'user': 'barney', 'active': true },
{ 'user': 'fred', 'active': false },
{ 'user': 'pebbles', 'active': false }
];
_.takeRightWhile(users, function(o) { return !o.active; });
// => objects for ['fred', 'pebbles']
// The `_.matches` iteratee shorthand.
_.takeRightWhile(users, { 'user': 'pebbles', 'active': false });
// => objects for ['pebbles']
// The `_.matchesProperty` iteratee shorthand.
_.takeRightWhile(users, ['active', false]);
// => objects for ['fred', 'pebbles']
// The `_.property` iteratee shorthand.
_.takeRightWhile(users, 'active');
// => []
_.takeWhile(array, [predicate=_.identity])
Создает срез array с элементами, взятыми с начала. Элементы берутся до тех пор, пока predicate не вернет ложное значение. Предикат вызывается с тремя аргументами: (value, index, array).
Since
3.0.0
Arguments
-
array(Array): Массив для запроса. -
[predicate=_.identity](Function): Функция, вызываемая при каждой итерации.
Returns
(Array): Возвращает срез array.
Example
var users = [
{ 'user': 'barney', 'active': false },
{ 'user': 'fred', 'active': false },
{ 'user': 'pebbles', 'active': true }
];
_.takeWhile(users, function(o) { return !o.active; });
// => objects for ['barney', 'fred']
// The `_.matches` iteratee shorthand.
_.takeWhile(users, { 'user': 'barney', 'active': false });
// => objects for ['barney']
// The `_.matchesProperty` iteratee shorthand.
_.takeWhile(users, ['active', false]);
// => objects for ['barney', 'fred']
// The `_.property` iteratee shorthand.
_.takeWhile(users, 'active');
// => []
_.union([arrays])
Создает массив уникальных значений в порядке следования из всех заданных массивов, используя SameValueZero для сравнения на равенство.
Since
0.1.0
Arguments
-
[arrays](...Array): Массивы для проверки.
Returns
(Array): Возвращает новый массив объединенных значений.
Example
_.union([2], [1, 2]); // => [2, 1]
_.unionBy([arrays], [iteratee=_.identity])
Этот метод похож на _.union, за исключением того, что он принимает iteratee, который вызывается для каждого элемента каждого arrays, чтобы сгенерировать критерий, по которому вычисляется уникальность. Результирующие значения выбираются из первого массива, в котором встречается значение. Итерируемая функция вызывается с одним аргументом:
(value).
Since
4.0.0
Arguments
-
[arrays](...Array): Массивы для проверки. -
[iteratee=_.identity](Function): Итерируемая функция, вызываемая для каждого элемента.
Returns
(Array): Возвращает новый массив объединенных значений.
Example
_.unionBy([2.1], [1.2, 2.3], Math.floor);
// => [2.1, 1.2]
// The `_.property` iteratee shorthand.
_.unionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');
// => [{ 'x': 1 }, { 'x': 2 }]
_.unionWith([arrays], [comparator])
Этот метод похож на _.union, за исключением того, что он принимает comparator, который вызывается для сравнения элементов arrays. Результирующие значения выбираются из первого массива, в котором встречается значение. Компаратор вызывается с двумя аргументами: (arrVal, othVal).
Since
4.0.0
Arguments
-
[arrays](...Array): Массивы для проверки. -
[comparator](Function): Компаратор, вызываемый для каждого элемента.
Returns
(Array): Возвращает новый массив объединенных значений.
Example
var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];
var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];
_.unionWith(objects, others, _.isEqual);
// => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]
_.uniq(array)
Создает версию массива без дубликатов, используя SameValueZero для сравнения на равенство, в которой сохраняется только первое вхождение каждого элемента. Порядок результирующих значений определяется порядком их появления в массиве.
Since
0.1.0
Arguments
-
array(Array): Массив для проверки.
Returns
(Array): Возвращает новый массив без дубликатов.
Example
_.uniq([2, 1, 2]); // => [2, 1]
_.uniqBy(array, [iteratee=_.identity])
Этот метод похож на _.uniq, за исключением того, что он принимает iteratee, который вызывается для каждого элемента в array, чтобы сгенерировать критерий, по которому вычисляется уникальность. Порядок результирующих значений определяется порядком их появления в массиве. Итерируемая функция вызывается с одним аргументом:
(value).
Since
4.0.0
Arguments
-
array(Array): Массив для проверки. -
[iteratee=_.identity](Function): Итерируемая функция, вызываемая для каждого элемента.
Returns
(Array): Возвращает новый массив без дубликатов.
Example
_.uniqBy([2.1, 1.2, 2.3], Math.floor);
// => [2.1, 1.2]
// The `_.property` iteratee shorthand.
_.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');
// => [{ 'x': 1 }, { 'x': 2 }]
_.uniqWith(array, [comparator])
Этот метод похож на _.uniq, за исключением того, что он принимает comparator, который вызывается для сравнения элементов array. Порядок результирующих значений определяется порядком их появления в массиве. Компаратор вызывается с двумя аргументами: (arrVal, othVal).
Since
4.0.0
Arguments
-
array(Array): Массив для проверки. -
[comparator](Function): Компаратор, вызываемый для каждого элемента.
Returns
(Array): Возвращает новый массив без дубликатов.
Example
var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 2 }];
_.uniqWith(objects, _.isEqual);
// => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]
_.unzip(array)
Этот метод похож на _.zip, за исключением того, что он принимает массив сгруппированных элементов и создает массив, группирующий элементы в их конфигурацию до сжатия.
Since
1.2.0
Arguments
-
array(Array): Массив сгруппированных элементов для обработки.
Returns
(Array): Возвращает новый массив перегруппированных элементов.
Example
var zipped = _.zip(['a', 'b'], [1, 2], [true, false]); // => [['a', 1, true], ['b', 2, false]] _.unzip(zipped); // => [['a', 'b'], [1, 2], [true, false]]
_.unzipWith(array, [iteratee=_.identity])
Этот метод похож на _.unzip, за исключением того, что он принимает iteratee, чтобы указать, как следует объединять перегруппированные значения. Итерируемая функция вызывается с элементами каждой группы: (...group).
Since
3.8.0
Arguments
-
array(Array): Массив сгруппированных элементов для обработки. -
[iteratee=_.identity](Function): Функция для объединения перегруппированных значений.
Returns
(Array): Возвращает новый массив перегруппированных элементов.
Example
var zipped = _.zip([1, 2], [10, 20], [100, 200]); // => [[1, 10, 100], [2, 20, 200]] _.unzipWith(zipped, _.add); // => [3, 30, 300]
_.without(array, [values])
Создает массив, исключая все заданные значения, используя SameValueZero для сравнения на равенство.
Примечание: В отличие от _.pull, этот метод возвращает новый массив.
Since
0.1.0
Arguments
-
array(Array): Массив для проверки. -
[values](...*): Значения для исключения.
Returns
(Array): Возвращает новый массив отфильтрованных значений.
Example
_.without([2, 1, 2, 3], 1, 2); // => [3]
_.xor([arrays])
Создает массив уникальных значений, который является симметрической разностью заданных массивов. Порядок результирующих значений определяется порядком их появления в массивах.
Since
2.4.0
Arguments
-
[arrays](...Array): Массивы для проверки.
Returns
(Array): Возвращает новый массив отфильтрованных значений.
Example
_.xor([2, 1], [2, 3]); // => [1, 3]
_.xorBy([arrays], [iteratee=_.identity])
Этот метод похож на _.xor, за исключением того, что он принимает iteratee, который вызывается для каждого элемента каждого arrays для генерации критерия, по которому они сравниваются. Порядок результирующих значений определяется порядком их появления в массивах. Итератор вызывается с одним аргументом: (value).
Since
4.0.0
Arguments
-
[arrays](...Array): Массивы для проверки. -
[iteratee=_.identity](Function): Итератор, вызываемый для каждого элемента.
Returns
(Array): Возвращает новый массив отфильтрованных значений.
Example
_.xorBy([2.1, 1.2], [2.3, 3.4], Math.floor);
// => [1.2, 3.4]
// The `_.property` iteratee shorthand.
_.xorBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');
// => [{ 'x': 2 }]
_.xorWith([arrays], [comparator])
Этот метод похож на _.xor, за исключением того, что он принимает comparator, который вызывается для сравнения элементов arrays. Порядок результирующих значений определяется порядком их появления в массивах. Компаратор вызывается с двумя аргументами: (arrVal, othVal).
Since
4.0.0
Arguments
-
[arrays](...Array): Массивы для проверки. -
[comparator](Function): Компаратор, вызываемый для каждого элемента.
Returns
(Array): Возвращает новый массив отфильтрованных значений.
Example
var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];
var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];
_.xorWith(objects, others, _.isEqual);
// => [{ 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]
_.zip([arrays])
Создает массив сгруппированных элементов, первый из которых содержит первые элементы заданных массивов, второй — вторые элементы заданных массивов и так далее.
Since
0.1.0
Arguments
-
[arrays](...Array): Массивы для обработки.
Returns
(Array): Возвращает новый массив сгруппированных элементов.
Example
_.zip(['a', 'b'], [1, 2], [true, false]); // => [['a', 1, true], ['b', 2, false]]
_.zipObject([props=[]], [values=[]])
Этот метод похож на _.fromPairs, за исключением того, что он принимает два массива: один с идентификаторами свойств и один с соответствующими значениями.
Since
0.4.0
Arguments
-
[props=[]](Array): Идентификаторы свойств. -
[values=[]](Array): Значения свойств.
Returns
(Object): Возвращает новый объект.
Example
_.zipObject(['a', 'b'], [1, 2]);
// => { 'a': 1, 'b': 2 }
_.zipObjectDeep([props=[]], [values=[]])
Этот метод похож на _.zipObject, за исключением того, что он поддерживает пути к свойствам.
Since
4.1.0
Arguments
-
[props=[]](Array): Идентификаторы свойств. -
[values=[]](Array): Значения свойств.
Returns
(Object): Возвращает новый объект.
Example
_.zipObjectDeep(['a.b[0].c', 'a.b[1].d'], [1, 2]);
// => { 'a': { 'b': [{ 'c': 1 }, { 'd': 2 }] } }
_.zipWith([arrays], [iteratee=_.identity])
Этот метод похож на _.zip, за исключением того, что он принимает iteratee для указания того, как следует комбинировать сгруппированные значения. Итератор вызывается с элементами каждой группы: (...group).
Since
3.8.0
Arguments
-
[arrays](...Array): Массивы для обработки. -
[iteratee=_.identity](Function): Функция для объединения сгруппированных значений.
Returns
(Array): Возвращает новый массив сгруппированных элементов.
Example
_.zipWith([1, 2], [10, 20], [100, 200], function(a, b, c) {
return a + b + c;
});
// => [111, 222]
Методы «Коллекции»
_.countBy(collection, [iteratee=_.identity])
Создает объект, составленный из ключей, сгенерированных из результатов выполнения каждого элемента collection через iteratee. Соответствующее значение каждого ключа — это количество раз, когда ключ был возвращен iteratee. Итератор вызывается с одним аргументом: (value).
Since
0.5.0
Arguments
-
collection(Array|Object): Коллекция для итерации. -
[iteratee=_.identity](Function): Итератор для преобразования ключей.
Returns
(Object): Возвращает составленный сводный объект.
Example
_.countBy([6.1, 4.2, 6.3], Math.floor);
// => { '4': 1, '6': 2 }
// The `_.property` iteratee shorthand.
_.countBy(['one', 'two', 'three'], 'length');
// => { '3': 2, '5': 1 }
_.every(collection, [predicate=_.identity])
Проверяет, возвращает ли predicate истинное значение для всех элементов collection. Итерация прекращается, как только predicate возвращает ложное значение. Предикат вызывается с тремя аргументами: (value, index|key, collection).
Примечание: Этот метод возвращает true для пустых коллекций, потому что все истинно для элементов пустых коллекций.
Since
0.1.0
Arguments
-
collection(Array|Object): Коллекция для итерации. -
[predicate=_.identity](Function): Функция, вызываемая на каждой итерации.
Returns
(boolean): Возвращает true, если все элементы проходят проверку предиката, иначе false.
Example
_.every([true, 1, null, 'yes'], Boolean);
// => false
var users = [
{ 'user': 'barney', 'age': 36, 'active': false },
{ 'user': 'fred', 'age': 40, 'active': false }
];
// The `_.matches` iteratee shorthand.
_.every(users, { 'user': 'barney', 'active': false });
// => false
// The `_.matchesProperty` iteratee shorthand.
_.every(users, ['active', false]);
// => true
// The `_.property` iteratee shorthand.
_.every(users, 'active');
// => false
_.filter(collection, [predicate=_.identity])
Итерирует элементы collection, возвращая массив всех элементов, для которых predicate возвращает истинное значение. Предикат вызывается с тремя аргументами: (value, index|key, collection).
Примечание: В отличие от _.remove, этот метод возвращает новый массив.
Since
0.1.0
Arguments
-
collection(Array|Object): Коллекция для итерации. -
[predicate=_.identity](Function): Функция, вызываемая на каждой итерации.
Returns
(Array): Возвращает новый отфильтрованный массив.
Example
var users = [
{ 'user': 'barney', 'age': 36, 'active': true },
{ 'user': 'fred', 'age': 40, 'active': false }
];
_.filter(users, function(o) { return !o.active; });
// => objects for ['fred']
// The `_.matches` iteratee shorthand.
_.filter(users, { 'age': 36, 'active': true });
// => objects for ['barney']
// The `_.matchesProperty` iteratee shorthand.
_.filter(users, ['active', false]);
// => objects for ['fred']
// The `_.property` iteratee shorthand.
_.filter(users, 'active');
// => objects for ['barney']
_.find(collection, [predicate=_.identity], [fromIndex=0])
Итерирует элементы collection, возвращая первый элемент, для которого predicate возвращает истинное значение. Предикат вызывается с тремя аргументами: (value, index|key, collection).
Since
0.1.0
Arguments
-
collection(Array|Object): Коллекция для проверки. -
[predicate=_.identity](Function): Функция, вызываемая на каждой итерации. -
[fromIndex=0](number): Индекс, с которого начинать поиск.
Returns
(*): Возвращает найденный элемент, иначе undefined.
Example
var users = [
{ 'user': 'barney', 'age': 36, 'active': true },
{ 'user': 'fred', 'age': 40, 'active': false },
{ 'user': 'pebbles', 'age': 1, 'active': true }
];
_.find(users, function(o) { return o.age < 40; });
// => object for 'barney'
// The `_.matches` iteratee shorthand.
_.find(users, { 'age': 1, 'active': true });
// => object for 'pebbles'
// The `_.matchesProperty` iteratee shorthand.
_.find(users, ['active', false]);
// => object for 'fred'
// The `_.property` iteratee shorthand.
_.find(users, 'active');
// => object for 'barney'
_.findLast(collection, [predicate=_.identity], [fromIndex=collection.length-1])
Этот метод похож на _.find, за исключением того, что он итерирует элементы collection справа налево.
Since
2.0.0
Arguments
-
collection(Array|Object): Коллекция для проверки. -
[predicate=_.identity](Function): Функция, вызываемая на каждой итерации. -
[fromIndex=collection.length-1](number): Индекс, с которого начинать поиск.
Returns
(*): Возвращает найденный элемент, иначе undefined.
Example
_.findLast([1, 2, 3, 4], function(n) {
return n % 2 == 1;
});
// => 3
_.flatMap(collection, [iteratee=_.identity])
Создает уплощенный массив значений, пропуская каждый элемент в collection через iteratee и уплощая сопоставленные результаты. Итератор вызывается с тремя аргументами: (value, index|key, collection).
Since
4.0.0
Arguments
-
collection(Array|Object): Коллекция для итерации. -
[iteratee=_.identity](Function): Функция, вызываемая на каждой итерации.
Returns
(Array): Возвращает новый уплощенный массив.
Example
function duplicate(n) {
return [n, n];
}
_.flatMap([1, 2], duplicate);
// => [1, 1, 2, 2]
_.flatMapDeep(collection, [iteratee=_.identity])
Этот метод похож на _.flatMap, за исключением того, что он рекурсивно сглаживает сопоставленные результаты.
Since
4.7.0
Arguments
-
collection(Array|Object): Коллекция для итерации. -
[iteratee=_.identity](Function): Функция, вызываемая на каждой итерации.
Returns
(Array): Возвращает новый сглаженный массив.
Example
function duplicate(n) {
return [[[n, n]]];
}
_.flatMapDeep([1, 2], duplicate);
// => [1, 1, 2, 2]
_.flatMapDepth(collection, [iteratee=_.identity], [depth=1])
Этот метод похож на _.flatMap, за исключением того, что он рекурсивно сглаживает сопоставленные результаты до depth раз.
Since
4.7.0
Arguments
-
collection(Array|Object): Коллекция для итерации. -
[iteratee=_.identity](Function): Функция, вызываемая на каждой итерации. -
[depth=1](number): Максимальная глубина рекурсии.
Returns
(Array): Возвращает новый сглаженный массив.
Example
function duplicate(n) {
return [[[n, n]]];
}
_.flatMapDepth([1, 2], duplicate, 2);
// => [[1, 1], [2, 2]]
_.forEach(collection, [iteratee=_.identity])
Итерирует элементы collection и вызывает iteratee для каждого элемента. Итерируемая функция вызывается с тремя аргументами: (value, index|key, collection). Итерируемые функции могут досрочно завершить итерацию, явно вернув false.
Примечание: Как и в других методах "Коллекций", объекты со свойством "length" итерируются как массивы. Чтобы избежать этого поведения, используйте _.forIn или _.forOwn для итерации по объектам.
Since
0.1.0
Aliases
_.each
Arguments
-
collection(Array|Object): Коллекция для итерации. -
[iteratee=_.identity](Function): Функция, вызываемая на каждой итерации.
Returns
(*): Возвращает collection.
Example
_.forEach([1, 2], function(value) {
console.log(value);
});
// => Logs `1` then `2`.
_.forEach({ 'a': 1, 'b': 2 }, function(value, key) {
console.log(key);
});
// => Logs 'a' then 'b' (iteration order is not guaranteed).
_.forEachRight(collection, [iteratee=_.identity])
Этот метод похож на _.forEach, за исключением того, что он итерирует элементы collection справа налево.
Since
2.0.0
Aliases
_.eachRight
Arguments
-
collection(Array|Object): Коллекция для итерации. -
[iteratee=_.identity](Function): Функция, вызываемая на каждой итерации.
Returns
(*): Возвращает collection.
Example
_.forEachRight([1, 2], function(value) {
console.log(value);
});
// => Logs `2` then `1`.
_.groupBy(collection, [iteratee=_.identity])
Создает объект, состоящий из ключей, сгенерированных из результатов выполнения каждого элемента collection через iteratee. Порядок сгруппированных значений определяется порядком их появления в collection. Соответствующее значение каждого ключа - это массив элементов, ответственных за генерацию ключа. Итерируемая функция вызывается с одним аргументом: (value).
Since
0.1.0
Arguments
-
collection(Array|Object): Коллекция для итерации. -
[iteratee=_.identity](Function): Итерируемая функция для преобразования ключей.
Returns
(Object): Возвращает составной агрегированный объект.
Example
_.groupBy([6.1, 4.2, 6.3], Math.floor);
// => { '4': [4.2], '6': [6.1, 6.3] }
// The `_.property` iteratee shorthand.
_.groupBy(['one', 'two', 'three'], 'length');
// => { '3': ['one', 'two'], '5': ['three'] }
_.includes(collection, value, [fromIndex=0])
Проверяет, содержится ли value в collection. Если collection является строкой, проверяется наличие подстроки value, в противном случае используется SameValueZero для сравнения на равенство. Если fromIndex является отрицательным числом, оно используется в качестве смещения от конца collection.
Since
0.1.0
Arguments
-
collection(Array|Object|string): Коллекция для проверки. -
value(*): Значение для поиска. -
[fromIndex=0](number): Индекс, с которого начинать поиск.
Returns
(boolean): Возвращает true, если value найден, иначе false.
Example
_.includes([1, 2, 3], 1);
// => true
_.includes([1, 2, 3], 1, 2);
// => false
_.includes({ 'a': 1, 'b': 2 }, 1);
// => true
_.includes('abcd', 'bc');
// => true
_.invokeMap(collection, path, [args])
Вызывает метод по path каждого элемента в collection, возвращая массив результатов каждого вызова метода. Любые дополнительные аргументы передаются каждому вызываемому методу. Если path является функцией, она вызывается для каждого элемента в collection и this привязывается к нему.
Since
4.0.0
Arguments
-
collection(Array|Object): Коллекция для итерации. -
path(Array|Function|string): Путь к вызываемому методу или функция, вызываемая на каждой итерации. -
[args](...*): Аргументы для вызова каждого метода.
Returns
(Array): Возвращает массив результатов.
Example
_.invokeMap([[5, 1, 7], [3, 2, 1]], 'sort'); // => [[1, 5, 7], [1, 2, 3]] _.invokeMap([123, 456], String.prototype.split, ''); // => [['1', '2', '3'], ['4', '5', '6']]
_.keyBy(collection, [iteratee=_.identity])
Создает объект, состоящий из ключей, сгенерированных из результатов выполнения каждого элемента collection через iteratee. Соответствующее значение каждого ключа - это последний элемент, ответственный за генерацию ключа. Итерируемая функция вызывается с одним аргументом: (value).
Since
4.0.0
Arguments
-
collection(Array|Object): Коллекция для итерации. -
[iteratee=_.identity](Function): Итерируемая функция для преобразования ключей.
Returns
(Object): Возвращает составной агрегированный объект.
Example
var array = [
{ 'dir': 'left', 'code': 97 },
{ 'dir': 'right', 'code': 100 }
];
_.keyBy(array, function(o) {
return String.fromCharCode(o.code);
});
// => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } }
_.keyBy(array, 'dir');
// => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } }
_.map(collection, [iteratee=_.identity])
Создает массив значений, пропуская каждый элемент в collection через iteratee. Итерируемая функция вызывается с тремя аргументами:
(value, index|key, collection).
Многие методы lodash защищены для работы в качестве итерируемых функций для методов, таких как _.every, _.filter, _.map, _.mapValues, _.reject и _.some.
Защищенные методы:ary, chunk, curry, curryRight, drop, dropRight, every, fill, invert, parseInt, random, range, rangeRight, repeat, sampleSize, slice, some, sortBy, split, take, takeRight, template, trim, trimEnd, trimStart, и words
Since
0.1.0
Arguments
-
collection(Array|Object): Коллекция для итерации. -
[iteratee=_.identity](Function): Функция, вызываемая на каждой итерации.
Returns
(Array): Возвращает новый отображенный массив.
Example
function square(n) {
return n * n;
}
_.map([4, 8], square);
// => [16, 64]
_.map({ 'a': 4, 'b': 8 }, square);
// => [16, 64] (iteration order is not guaranteed)
var users = [
{ 'user': 'barney' },
{ 'user': 'fred' }
];
// The `_.property` iteratee shorthand.
_.map(users, 'user');
// => ['barney', 'fred']
_.orderBy(collection, [iteratees=[_.identity]], [orders])
Этот метод похож на _.sortBy, за исключением того, что он позволяет указывать порядок сортировки итерируемых элементов. Если orders не указан, все значения сортируются по возрастанию. В противном случае укажите порядок "desc" для сортировки по убыванию или "asc" для сортировки по возрастанию соответствующих значений.
Since
4.0.0
Arguments
-
collection(Array|Object): Коллекция для итерации. -
[iteratees=[_.identity]](Array[]|Function[]|Object[]|string[]): Итерируемые элементы для сортировки. -
[orders](string[]): Порядок сортировкиiteratees.
Returns
(Array): Возвращает новый отсортированный массив.
Example
var users = [
{ 'user': 'fred', 'age': 48 },
{ 'user': 'barney', 'age': 34 },
{ 'user': 'fred', 'age': 40 },
{ 'user': 'barney', 'age': 36 }
];
// Sort by `user` in ascending order and by `age` in descending order.
_.orderBy(users, ['user', 'age'], ['asc', 'desc']);
// => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]
_.partition(collection, [predicate=_.identity])
Создает массив элементов, разделенных на две группы, первая из которых содержит элементы, для которых predicate возвращает истинное значение, а вторая - элементы, для которых predicate возвращает ложное значение. Предикат вызывается с одним аргументом: (value).
Since
3.0.0
Arguments
-
collection(Array|Object): Коллекция для итерации. -
[predicate=_.identity](Function): Функция, вызываемая на каждой итерации.
Returns
(Array): Возвращает массив сгруппированных элементов.
Example
var users = [
{ 'user': 'barney', 'age': 36, 'active': false },
{ 'user': 'fred', 'age': 40, 'active': true },
{ 'user': 'pebbles', 'age': 1, 'active': false }
];
_.partition(users, function(o) { return o.active; });
// => objects for [['fred'], ['barney', 'pebbles']]
// The `_.matches` iteratee shorthand.
_.partition(users, { 'age': 1, 'active': false });
// => objects for [['pebbles'], ['barney', 'fred']]
// The `_.matchesProperty` iteratee shorthand.
_.partition(users, ['active', false]);
// => objects for [['barney', 'pebbles'], ['fred']]
// The `_.property` iteratee shorthand.
_.partition(users, 'active');
// => objects for [['fred'], ['barney', 'pebbles']]
_.reduce(collection, [iteratee=_.identity], [accumulator])
Сводит collection к значению, которое является накопленным результатом выполнения каждого элемента в collection через iteratee, где каждый последующий вызов получает возвращаемое значение предыдущего. Если accumulator не указан, первый элемент collection используется в качестве начального значения. Итерируемая функция вызывается с четырьмя аргументами:
(accumulator, value, index|key, collection).
Многие методы lodash защищены для работы в качестве итерируемых функций для методов, таких как _.reduce, _.reduceRight и _.transform.
Защищенные методы:assign, defaults, defaultsDeep, includes, merge, orderBy и sortBy
Since
0.1.0
Arguments
-
collection(Array|Object): Коллекция для итерации. -
[iteratee=_.identity](Function): Функция, вызываемая на каждой итерации. -
[accumulator](*): Начальное значение.
Returns
(*): Возвращает накопленное значение.
Example
_.reduce([1, 2], function(sum, n) {
return sum + n;
}, 0);
// => 3
_.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {
(result[value] || (result[value] = [])).push(key);
return result;
}, {});
// => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed)
_.reduceRight(collection, [iteratee=_.identity], [accumulator])
Этот метод похож на _.reduce, за исключением того, что он итерирует элементы collection справа налево.
Since
0.1.0
Arguments
-
collection(Array|Object): Коллекция для итерации. -
[iteratee=_.identity](Function): Функция, вызываемая на каждой итерации. -
[accumulator](*): Начальное значение.
Returns
(*): Возвращает накопленное значение.
Example
var array = [[0, 1], [2, 3], [4, 5]];
_.reduceRight(array, function(flattened, other) {
return flattened.concat(other);
}, []);
// => [4, 5, 2, 3, 0, 1]
_.reject(collection, [predicate=_.identity])
Противоположность _.filter; этот метод возвращает элементы collection, для которых predicate не возвращает истинное значение.
Since
0.1.0
Arguments
-
collection(Array|Object): Коллекция для итерации. -
[predicate=_.identity](Function): Функция, вызываемая на каждой итерации.
Returns
(Array): Возвращает новый отфильтрованный массив.
Example
var users = [
{ 'user': 'barney', 'age': 36, 'active': false },
{ 'user': 'fred', 'age': 40, 'active': true }
];
_.reject(users, function(o) { return !o.active; });
// => objects for ['fred']
// The `_.matches` iteratee shorthand.
_.reject(users, { 'age': 40, 'active': true });
// => objects for ['barney']
// The `_.matchesProperty` iteratee shorthand.
_.reject(users, ['active', false]);
// => objects for ['fred']
// The `_.property` iteratee shorthand.
_.reject(users, 'active');
// => objects for ['barney']
_.sample(collection)
Получает случайный элемент из collection.
Since
2.0.0
Arguments
-
collection(Array|Object): Коллекция для выборки.
Returns
(*): Возвращает случайный элемент.
Example
_.sample([1, 2, 3, 4]); // => 2
_.sampleSize(collection, [n=1])
Получает n случайных элементов с уникальными ключами из collection до размера collection.
Since
4.0.0
Arguments
-
collection(Array|Object): Коллекция для выборки. -
[n=1](number): Количество элементов для выборки.
Returns
(Array): Возвращает случайные элементы.
Example
_.sampleSize([1, 2, 3], 2); // => [3, 1] _.sampleSize([1, 2, 3], 4); // => [2, 3, 1]
_.shuffle(collection)
Создает массив перемешанных значений, используя версию алгоритма перемешивания Фишера-Йетса Fisher-Yates shuffle.
Since
0.1.0
Arguments
-
collection(Array|Object): Коллекция для перемешивания.
Returns
(Array): Возвращает новый перемешанный массив.
Example
_.shuffle([1, 2, 3, 4]); // => [4, 1, 3, 2]
_.size(collection)
Получает размер collection, возвращая его длину для массивоподобных значений или количество собственных перечисляемых свойств со строковыми ключами для объектов.
Since
0.1.0
Arguments
-
collection(Array|Object|string): Коллекция для проверки.
Returns
(number): Возвращает размер коллекции.
Example
_.size([1, 2, 3]);
// => 3
_.size({ 'a': 1, 'b': 2 });
// => 2
_.size('pebbles');
// => 7
_.some(collection, [predicate=_.identity])
Проверяет, возвращает ли predicate истинное значение для любого элемента collection. Итерация прекращается, как только predicate возвращает истинное значение. Предикат вызывается с тремя аргументами: (value, index|key, collection).
Since
0.1.0
Arguments
-
collection(Array|Object): Коллекция для итерации. -
[predicate=_.identity](Function): Функция, вызываемая на каждой итерации.
Returns
(boolean): Возвращает true, если какой-либо элемент проходит проверку предиката, иначе false.
Example
_.some([null, 0, 'yes', false], Boolean);
// => true
var users = [
{ 'user': 'barney', 'active': true },
{ 'user': 'fred', 'active': false }
];
// The `_.matches` iteratee shorthand.
_.some(users, { 'user': 'barney', 'active': false });
// => false
// The `_.matchesProperty` iteratee shorthand.
_.some(users, ['active', false]);
// => true
// The `_.property` iteratee shorthand.
_.some(users, 'active');
// => true
_.sortBy(collection, [iteratees=[_.identity]])
Создает массив элементов, отсортированных в порядке возрастания по результатам прохождения каждого элемента коллекции через каждую итерируемую функцию. Этот метод выполняет стабильную сортировку, то есть сохраняет исходный порядок сортировки равных элементов. Итерируемые функции вызываются с одним аргументом: (value).
Since
0.1.0
Arguments
-
collection(Array|Object): Коллекция для итерации. -
[iteratees=[_.identity]](...(Function|Function[])): Итерируемые функции для сортировки.
Returns
(Array): Возвращает новый отсортированный массив.
Example
var users = [
{ 'user': 'fred', 'age': 48 },
{ 'user': 'barney', 'age': 36 },
{ 'user': 'fred', 'age': 40 },
{ 'user': 'barney', 'age': 34 }
];
_.sortBy(users, [function(o) { return o.user; }]);
// => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]
_.sortBy(users, ['user', 'age']);
// => objects for [['barney', 34], ['barney', 36], ['fred', 40], ['fred', 48]]
Методы «Дата»
_.now()
Получает метку времени количества миллисекунд, прошедших с момента начала эпохи Unix (1 января 1970 00:00:00 UTC).
Since
2.4.0
Returns
(number): Возвращает метку времени.
Example
_.defer(function(stamp) {
console.log(_.now() - stamp);
}, _.now());
// => Logs the number of milliseconds it took for the deferred invocation.
Методы «Функция»
_.after(n, func)
Противоположность _.before; этот метод создает функцию, которая вызывает func, когда она вызывается n или более раз.
Since
0.1.0
Arguments
-
n(number): Количество вызовов, прежде чем будет вызванаfunc. -
func(Function): Функция для ограничения.
Returns
(Function): Возвращает новую ограниченную функцию.
Example
var saves = ['profile', 'settings'];
var done = _.after(saves.length, function() {
console.log('done saving!');
});
_.forEach(saves, function(type) {
asyncSave({ 'type': type, 'complete': done });
});
// => Logs 'done saving!' after the two async saves have completed.
_.ary(func, [n=func.length])
Создает функцию, которая вызывает func, с максимум n аргументами, игнорируя любые дополнительные аргументы.
Since
3.0.0
Arguments
-
func(Function): Функция, для которой нужно ограничить количество аргументов. -
[n=func.length](number): Предел арности.
Returns
(Function): Возвращает новую функцию с ограничением.
Example
_.map(['6', '8', '10'], _.ary(parseInt, 1)); // => [6, 8, 10]
_.before(n, func)
Создает функцию, которая вызывает func, со связыванием this и аргументами созданной функции, пока она вызывается менее n раз. Последующие вызовы созданной функции возвращают результат последнего вызова func.
Since
3.0.0
Arguments
-
n(number): Количество вызовов, после которогоfuncбольше не вызывается. -
func(Function): Функция для ограничения.
Returns
(Function): Возвращает новую ограниченную функцию.
Example
jQuery(element).on('click', _.before(5, addContactToList));
// => Allows adding up to 4 contacts to the list.
_.bind(func, thisArg, [partials])
Создает функцию, которая вызывает func со связыванием this thisArg и partials, добавленными в начало аргументов, которые она получает.
Значение _.bind.placeholder, которое по умолчанию равно _ в монолитных сборках, может использоваться в качестве заполнителя для частично примененных аргументов.
Примечание: В отличие от нативного Function#bind, этот метод не устанавливает свойство «length» связанных функций.
Since
0.1.0
Arguments
-
func(Function): Функция для связывания. -
thisArg(*): Связываниеthisfunc. -
[partials](...*): Аргументы, которые будут частично применены.
Returns
(Функция): Возвращает новую привязанную функцию.
Пример
function greet(greeting, punctuation) {
return greeting + ' ' + this.user + punctuation;
}
var object = { 'user': 'fred' };
var bound = _.bind(greet, object, 'hi');
bound('!');
// => 'hi fred!'
// Bound with placeholders.
var bound = _.bind(greet, object, _, '!');
bound('hi');
// => 'hi fred!'
_.bindKey(object, key, [partials])
Создает функцию, которая вызывает метод по object[key] с partials , добавленными в начало аргументов, которые она получает.
Этот метод отличается от _.bind тем, что позволяет привязанным функциям ссылаться на методы, которые могут быть переопределены или еще не существуют. См. статью Питера Михакса для получения более подробной информации.
Значение _.bindKey.placeholder, по умолчанию равное _ в монолитных сборках, может использоваться в качестве заполнителя для частично примененных аргументов.
С версии
0.10.0
Аргументы
-
object(Объект): Объект, на котором вызывается метод. -
key(строка): Ключ метода. -
[partials](...*): Аргументы, которые должны быть частично применены.
Возвращает
(Функция): Возвращает новую привязанную функцию.
Пример
var object = {
'user': 'fred',
'greet': function(greeting, punctuation) {
return greeting + ' ' + this.user + punctuation;
}
};
var bound = _.bindKey(object, 'greet', 'hi');
bound('!');
// => 'hi fred!'
object.greet = function(greeting, punctuation) {
return greeting + 'ya ' + this.user + punctuation;
};
bound('!');
// => 'hiya fred!'
// Bound with placeholders.
var bound = _.bindKey(object, 'greet', _, '!');
bound('hi');
// => 'hiya fred!'
_.curry(func, [arity=func.length])
Создает функцию, которая принимает аргументы func и либо вызывает func, возвращая его результат, если предоставлено как минимум arity аргументов, либо возвращает функцию, которая принимает оставшиеся func аргументов и так далее. Арность func может быть указана, если func.length недостаточно.
Значение _.curry.placeholder, по умолчанию равное _ в монолитных сборках, может использоваться в качестве заполнителя для предоставленных аргументов.
Примечание: Этот метод не устанавливает свойство "length" для каррированных функций.
С версии
2.0.0
Аргументы
-
func(Функция): Функция для каррирования. -
[arity=func.length](число): Арностьfunc.
Возвращает
(Функция): Возвращает новую каррированную функцию.
Пример
var abc = function(a, b, c) {
return [a, b, c];
};
var curried = _.curry(abc);
curried(1)(2)(3);
// => [1, 2, 3]
curried(1, 2)(3);
// => [1, 2, 3]
curried(1, 2, 3);
// => [1, 2, 3]
// Curried with placeholders.
curried(1)(_, 3)(2);
// => [1, 2, 3]
_.curryRight(func, [arity=func.length])
Этот метод похож на _.curry, за исключением того, что аргументы применяются к func аналогично _.partialRight, а не _.partial.
Значение _.curryRight.placeholder, по умолчанию равное _ в монолитных сборках, может использоваться в качестве заполнителя для предоставленных аргументов.
Примечание: Этот метод не устанавливает свойство "length" для каррированных функций.
С версии
3.0.0
Аргументы
-
func(Функция): Функция для каррирования. -
[arity=func.length](число): Арностьfunc.
Возвращает
(Функция): Возвращает новую каррированную функцию.
Пример
var abc = function(a, b, c) {
return [a, b, c];
};
var curried = _.curryRight(abc);
curried(3)(2)(1);
// => [1, 2, 3]
curried(2, 3)(1);
// => [1, 2, 3]
curried(1, 2, 3);
// => [1, 2, 3]
// Curried with placeholders.
curried(3)(1, _)(2);
// => [1, 2, 3]
_.debounce(func, [wait=0], [options={}])
Создает функцию с отложенным вызовом, которая откладывает вызов func до тех пор, пока не пройдет wait миллисекунд с момента последнего вызова функции с отложенным вызовом. Функция с отложенным вызовом поставляется с методом cancel для отмены отложенных func вызовов и методом flush для их немедленного вызова. Укажите options, чтобы указать, следует ли вызывать func на переднем и/или заднем крае wait таймаута. func вызывается с последними аргументами, предоставленными функции с отложенным вызовом. Последующие вызовы функции с отложенным вызовом возвращают результат последнего func вызова.
Примечание: Если параметры leading и trailing равны true, func вызывается только на заднем крае таймаута, если функция с отложенным вызовом вызывается более одного раза во время wait таймаута.
Если wait равно 0 и leading равно false, вызов func откладывается до следующего такта, аналогично setTimeout с таймаутом 0.
См. статью Дэвида Корбачо для получения подробной информации о различиях между _.debounce и _.throttle.
С версии
0.1.0
Аргументы
-
func(Функция): Функция, для которой нужно сделать отложенный вызов. -
[wait=0](число): Количество миллисекунд для задержки. -
[options={}](Объект): Объект параметров. -
[options.leading=false](логическое): Указывает на вызов на переднем крае таймаута. -
[options.maxWait](число): Максимальное время, на котороеfuncможет быть отложено перед вызовом. -
[options.trailing=true](логическое): Указывает на вызов на заднем крае таймаута.
Возвращает
(Функция): Возвращает новую функцию с отложенным вызовом.
Пример
// Avoid costly calculations while the window size is in flux.
jQuery(window).on('resize', _.debounce(calculateLayout, 150));
// Invoke `sendMail` when clicked, debouncing subsequent calls.
jQuery(element).on('click', _.debounce(sendMail, 300, {
'leading': true,
'trailing': false
}));
// Ensure `batchLog` is invoked once after 1 second of debounced calls.
var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });
var source = new EventSource('/stream');
jQuery(source).on('message', debounced);
// Cancel the trailing debounced invocation.
jQuery(window).on('popstate', debounced.cancel);
_.defer(func, [args])
Откладывает вызов func до тех пор, пока не очистится текущий стек вызовов. Все дополнительные аргументы передаются func, когда он вызывается.
С версии
0.1.0
Аргументы
-
func(Функция): Функция, вызов которой нужно отложить. -
[args](...*): Аргументы для вызоваfunc.
Возвращает
(число): Возвращает идентификатор таймера.
Пример
_.defer(function(text) {
console.log(text);
}, 'deferred');
// => Logs 'deferred' after one millisecond.
_.delay(func, wait, [args])
Вызывает func через wait миллисекунд. Все дополнительные аргументы передаются func, когда он вызывается.
С версии
0.1.0
Аргументы
-
func(Функция): Функция, вызов которой нужно отложить. -
wait(число): Количество миллисекунд для задержки вызова. -
[args](...*): Аргументы для вызоваfunc.
Возвращает
(число): Возвращает идентификатор таймера.
Пример
_.delay(function(text) {
console.log(text);
}, 1000, 'later');
// => Logs 'later' after one second.
_.flip(func)
Создает функцию, которая вызывает func с перевернутыми аргументами.
С версии
4.0.0
Аргументы
-
func(Функция): Функция, для которой нужно перевернуть аргументы.
Возвращает
(Функция): Возвращает новую функцию с перевернутыми аргументами.
Пример
var flipped = _.flip(function() {
return _.toArray(arguments);
});
flipped('a', 'b', 'c', 'd');
// => ['d', 'c', 'b', 'a']
_.memoize(func, [resolver])
Создает функцию, которая запоминает результат func. Если предоставлен resolver, он определяет ключ кэша для хранения результата на основе аргументов, предоставленных запоминающей функции. По умолчанию, первый аргумент, предоставленный запоминающей функции, используется в качестве ключа кэша карты. func вызывается со связыванием this запоминающей функции.
Примечание: Кэш предоставляется как свойство cache запоминающей функции. Его создание может быть настроено путем замены конструктора _.memoize.Cache на тот, экземпляры которого реализуют интерфейс метода Map clear, delete, get, has и set.
С версии
0.1.0
Аргументы
-
func(Функция): Функция, результат которой нужно запомнить. -
[resolver](Функция): Функция для определения ключа кэша.
Возвращает
(Функция): Возвращает новую запоминающую функцию.
Пример
var object = { 'a': 1, 'b': 2 };
var other = { 'c': 3, 'd': 4 };
var values = _.memoize(_.values);
values(object);
// => [1, 2]
values(other);
// => [3, 4]
object.a = 2;
values(object);
// => [1, 2]
// Modify the result cache.
values.cache.set(object, ['a', 'b']);
values(object);
// => ['a', 'b']
// Replace `_.memoize.Cache`.
_.memoize.Cache = WeakMap;
_.negate(predicate)
Создает функцию, которая отрицает результат предиката func. Предикат func вызывается со связыванием this и аргументами созданной функции.
С версии
3.0.0
Аргументы
-
predicate(Функция): Предикат для отрицания.
Возвращает
(Функция): Возвращает новую отрицательную функцию.
Пример
function isEven(n) {
return n % 2 == 0;
}
_.filter([1, 2, 3, 4, 5, 6], _.negate(isEven));
// => [1, 3, 5]
_.once(func)
Создает функцию, которая ограничена одним вызовом func. Повторные вызовы функции возвращают значение первого вызова. func вызывается со связыванием this и аргументами созданной функции.
С версии
0.1.0
Аргументы
-
func(Функция): Функция, которую нужно ограничить.
Возвращает
(Функция): Возвращает новую ограниченную функцию.
Пример
var initialize = _.once(createApplication); initialize(); initialize(); // => `createApplication` is invoked once
_.overArgs(func, [transforms=[_.identity]])
Создаёт функцию, которая вызывает func с преобразованными аргументами.
Since
4.0.0
Arguments
-
func(Function): Функция для обертывания. -
[transforms=[_.identity]](...(Function|Function[])): Преобразования аргументов.
Returns
(Function): Возвращает новую функцию.
Example
function doubled(n) {
return n * 2;
}
function square(n) {
return n * n;
}
var func = _.overArgs(function(x, y) {
return [x, y];
}, [square, doubled]);
func(9, 3);
// => [81, 6]
func(10, 5);
// => [100, 10]
_.partial(func, [partials])
Создаёт функцию, которая вызывает func с partials добавленными в начало аргументов, которые она получает. Этот метод похож на _.bind, за исключением того, что он не изменяет this привязку.
Значение _.partial.placeholder, которое по умолчанию равно _ в монолитных сборках, может использоваться в качестве заполнителя для частично применённых аргументов.
Примечание: Этот метод не устанавливает свойство "length" для частично применённых функций.
Since
0.2.0
Arguments
-
func(Function): Функция, к которой частично применяются аргументы. -
[partials](...*): Аргументы, которые должны быть частично применены.
Returns
(Function): Возвращает новую частично применённую функцию.
Example
function greet(greeting, name) {
return greeting + ' ' + name;
}
var sayHelloTo = _.partial(greet, 'hello');
sayHelloTo('fred');
// => 'hello fred'
// Partially applied with placeholders.
var greetFred = _.partial(greet, _, 'fred');
greetFred('hi');
// => 'hi fred'
_.partialRight(func, [partials])
Этот метод похож на _.partial, за исключением того, что частично применённые аргументы добавляются к аргументам, которые он получает.
Значение _.partialRight.placeholder, которое по умолчанию равно _ в монолитных сборках, может использоваться в качестве заполнителя для частично применённых аргументов.
Примечание: Этот метод не устанавливает свойство "length" для частично применённых функций.
Since
1.0.0
Arguments
-
func(Function): Функция, к которой частично применяются аргументы. -
[partials](...*): Аргументы, которые должны быть частично применены.
Returns
(Function): Возвращает новую частично применённую функцию.
Example
function greet(greeting, name) {
return greeting + ' ' + name;
}
var greetFred = _.partialRight(greet, 'fred');
greetFred('hi');
// => 'hi fred'
// Partially applied with placeholders.
var sayHelloTo = _.partialRight(greet, 'hello', _);
sayHelloTo('fred');
// => 'hello fred'
_.rearg(func, indexes)
Создаёт функцию, которая вызывает func с аргументами, расположенными в соответствии с указанными indexes, где значение аргумента с первым индексом предоставляется в качестве первого аргумента, значение аргумента со вторым индексом предоставляется в качестве второго аргумента и так далее.
Since
3.0.0
Arguments
-
func(Function): Функция, для которой нужно переставить аргументы. -
indexes(...(number|number[])): Переставленные индексы аргументов.
Returns
(Function): Возвращает новую функцию.
Example
var rearged = _.rearg(function(a, b, c) {
return [a, b, c];
}, [2, 0, 1]);
rearged('b', 'c', 'a')
// => ['a', 'b', 'c']
_.rest(func, [start=func.length-1])
Создаёт функцию, которая вызывает func с this привязкой созданной функции и аргументами с start и далее, предоставленными в виде массива.
Примечание: Этот метод основан на rest параметре.
Since
4.0.0
Arguments
-
func(Function): Функция, к которой нужно применить rest параметр. -
[start=func.length-1](number): Начальная позиция rest параметра.
Returns
(Function): Возвращает новую функцию.
Example
var say = _.rest(function(what, names) {
return what + ' ' + _.initial(names).join(', ') +
(_.size(names) > 1 ? ', & ' : '') + _.last(names);
});
say('hello', 'fred', 'barney', 'pebbles');
// => 'hello fred, barney, & pebbles'
_.spread(func, [start=0])
Создаёт функцию, которая вызывает func с this привязкой созданной функции и массивом аргументов, очень похожим на Function#apply.
Примечание: Этот метод основан на операторе spread.
Since
3.2.0
Arguments
-
func(Function): Функция, для которой нужно распределить аргументы. -
[start=0](number): Начальная позиция spread.
Returns
(Function): Возвращает новую функцию.
Example
var say = _.spread(function(who, what) {
return who + ' says ' + what;
});
say(['fred', 'hello']);
// => 'fred says hello'
var numbers = Promise.all([
Promise.resolve(40),
Promise.resolve(36)
]);
numbers.then(_.spread(function(x, y) {
return x + y;
}));
// => a Promise of 76
_.throttle(func, [wait=0], [options={}])
Создаёт функцию с ограничением частоты вызова, которая вызывает func не чаще одного раза каждые wait миллисекунд. Функция с ограничением частоты вызова поставляется с методом cancel для отмены отложенных вызовов func и методом flush для их немедленного вызова. Укажите options, чтобы указать, следует ли вызывать func на переднем и/или заднем крае wait таймаута. func вызывается с последними аргументами, предоставленными функции с ограничением частоты вызова. Последующие вызовы функции с ограничением частоты вызова возвращают результат последнего вызова func.
Примечание: Если параметры leading и trailing равны true, func вызывается на заднем крае таймаута только в том случае, если функция с ограничением частоты вызова вызывается более одного раза во время wait таймаута.
Если wait равно 0 и leading равно false, вызов func откладывается до следующего тика, аналогично setTimeout с таймаутом 0.
См. статью Дэвида Корбачо для получения подробной информации о различиях между _.throttle и _.debounce.
Since
0.1.0
Arguments
-
func(Function): Функция, которую нужно ограничить по частоте вызова. -
[wait=0](number): Количество миллисекунд для ограничения частоты вызовов. -
[options={}](Object): Объект параметров. -
[options.leading=true](boolean): Указывает на вызов на переднем крае таймаута. -
[options.trailing=true](boolean): Указывает на вызов на заднем крае таймаута.
Returns
(Function): Возвращает новую функцию с ограничением частоты вызова.
Example
// Avoid excessively updating the position while scrolling.
jQuery(window).on('scroll', _.throttle(updatePosition, 100));
// Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.
var throttled = _.throttle(renewToken, 300000, { 'trailing': false });
jQuery(element).on('click', throttled);
// Cancel the trailing throttled invocation.
jQuery(window).on('popstate', throttled.cancel);
_.unary(func)
Создаёт функцию, которая принимает не более одного аргумента, игнорируя любые дополнительные аргументы.
Since
4.0.0
Arguments
-
func(Function): Функция, для которой нужно ограничить количество аргументов.
Returns
(Function): Возвращает новую функцию с ограничением.
Example
_.map(['6', '8', '10'], _.unary(parseInt)); // => [6, 8, 10]
_.wrap(value, [wrapper=identity])
Создаёт функцию, которая предоставляет value в wrapper в качестве своего первого аргумента. Любые дополнительные аргументы, предоставленные функции, добавляются к тем, которые предоставлены wrapper. Обертка вызывается с this привязкой созданной функции.
Since
0.1.0
Arguments
-
value(*): Значение для обертывания. -
[wrapper=identity](Function): Функция-обёртка.
Returns
(Function): Возвращает новую функцию.
Example
var p = _.wrap(_.escape, function(func, text) {
return '<p>' + func(text) + '</p>';
});
p('fred, barney, & pebbles');
// => '<p>fred, barney, & pebbles</p>'
Методы «Lang»
_.castArray(value)
Преобразует value в массив, если это не массив.
Since
4.4.0
Arguments
-
value(*): Значение для проверки.
Returns
(Array): Возвращает преобразованный массив.
Example
_.castArray(1);
// => [1]
_.castArray({ 'a': 1 });
// => [{ 'a': 1 }]
_.castArray('abc');
// => ['abc']
_.castArray(null);
// => [null]
_.castArray(undefined);
// => [undefined]
_.castArray();
// => []
var array = [1, 2, 3];
console.log(_.castArray(array) === array);
// => true
_.clone(value)
Создаёт неглубокую копию value.
Примечание: Этот метод слабо основан на алгоритме структурированного клонирования и поддерживает клонирование массивов, буферов массивов, булевых значений, объектов Date, Map, чисел, Object, регулярных выражений, Set, строк, символов и типизированных массивов. Собственные перечисляемые свойства arguments объектов клонируются как простые объекты. Для неклонируемых значений, таких как объекты ошибок, функции, узлы DOM и WeakMaps, возвращается пустой объект.
Since
0.1.0
Arguments
-
value(*): Значение для клонирования.
Returns
(*): Возвращает клонированное значение.
Example
var objects = [{ 'a': 1 }, { 'b': 2 }];
var shallow = _.clone(objects);
console.log(shallow[0] === objects[0]);
// => true
_.cloneDeep(value)
Этот метод похож на _.clone, за исключением того, что он рекурсивно клонирует value.
Since
1.0.0
Arguments
-
value(*): Значение для рекурсивного клонирования.
Returns
(*): Возвращает глубоко клонированное значение.
Example
var objects = [{ 'a': 1 }, { 'b': 2 }];
var deep = _.cloneDeep(objects);
console.log(deep[0] === objects[0]);
// => false
_.cloneDeepWith(value, [customizer])
Этот метод похож на _.cloneWith, за исключением того, что он рекурсивно клонирует value.
Since
4.0.0
Arguments
-
value(*): Значение для рекурсивного клонирования. -
[customizer](Function): Функция для настройки клонирования.
Returns
(*): Возвращает глубоко клонированное значение.
Example
function customizer(value) {
if (_.isElement(value)) {
return value.cloneNode(true);
}
}
var el = _.cloneDeepWith(document.body, customizer);
console.log(el === document.body);
// => false
console.log(el.nodeName);
// => 'BODY'
console.log(el.childNodes.length);
// => 20
_.cloneWith(value, [customizer])
Этот метод похож на _.clone, за исключением того, что он принимает customizer, который вызывается для создания клонированного значения. Если customizer возвращает undefined, обработка клонирования выполняется методом. customizer вызывается с четырьмя аргументами; (value [, index|key, object, stack]).
Since
4.0.0
Arguments
-
value(*): Значение для клонирования. -
[customizer](Function): Функция для настройки клонирования.
Returns
(*): Возвращает клонированное значение.
Example
function customizer(value) {
if (_.isElement(value)) {
return value.cloneNode(false);
}
}
var el = _.cloneWith(document.body, customizer);
console.log(el === document.body);
// => false
console.log(el.nodeName);
// => 'BODY'
console.log(el.childNodes.length);
// => 0
_.conformsTo(object, source)
Проверяет, соответствует ли object source путем вызова свойств-предикатов source с соответствующими значениями свойств object.
Примечание: Этот метод эквивалентен _.conforms, когда source частично применён.
Since
4.14.0
Arguments
-
object(Object): Объект для проверки. -
source(Object): Объект предикатов свойств для соответствия.
Returns
(boolean): Возвращает true, если object соответствует, иначе false.
Example
var object = { 'a': 1, 'b': 2 };
_.conformsTo(object, { 'b': function(n) { return n > 1; } });
// => true
_.conformsTo(object, { 'b': function(n) { return n > 2; } });
// => false
_.eq(value, other)
Выполняет сравнение SameValueZero между двумя значениями, чтобы определить, являются ли они эквивалентными.
Since
4.0.0
Arguments
-
value(*): Значение для сравнения. -
other(*): Другое значение для сравнения.
Returns
(boolean): Возвращает true, если значения эквивалентны, иначе false.
Example
var object = { 'a': 1 };
var other = { 'a': 1 };
_.eq(object, object);
// => true
_.eq(object, other);
// => false
_.eq('a', 'a');
// => true
_.eq('a', Object('a'));
// => false
_.eq(NaN, NaN);
// => true
_.gt(value, other)
Проверяет, больше ли value чем other.
Since
3.9.0
Arguments
-
value(*): Значение для сравнения. -
other(*): Другое значение для сравнения.
Returns
(boolean): Возвращает true, если value больше чем other, иначе false.
Example
_.gt(3, 1); // => true _.gt(3, 3); // => false _.gt(1, 3); // => false
_.gte(value, other)
Проверяет, больше ли value или равно other.
Since
3.9.0
Arguments
-
value(*): Значение для сравнения. -
other(*): Другое значение для сравнения.
Returns
(boolean): Возвращает true, если value больше или равно other, иначе false.
Example
_.gte(3, 1); // => true _.gte(3, 3); // => true _.gte(1, 3); // => false
_.isArguments(value)
Проверяет, является ли value объектом, похожим на arguments.
Since
0.1.0
Arguments
-
value(*): Значение для проверки.
Returns
(boolean): Возвращает true, если value является объектом arguments, иначе false.
Example
_.isArguments(function() { return arguments; }());
// => true
_.isArguments([1, 2, 3]);
// => false
_.isArray(value)
Проверяет, классифицируется ли value как объект Array.
Since
0.1.0
Arguments
-
value(*): Значение для проверки.
Returns
(boolean): Возвращает true, если value является массивом, иначе false.
Example
_.isArray([1, 2, 3]);
// => true
_.isArray(document.body.children);
// => false
_.isArray('abc');
// => false
_.isArray(_.noop);
// => false
_.isArrayBuffer(value)
Проверяет, классифицируется ли value как объект ArrayBuffer.
Since
4.3.0
Arguments
-
value(*): Значение для проверки.
Returns
(boolean): Возвращает true, если value является буферным массивом, иначе false.
Example
_.isArrayBuffer(new ArrayBuffer(2)); // => true _.isArrayBuffer(new Array(2)); // => false
_.isArrayLike(value)
Проверяет, является ли value похожим на массив. Значение считается похожим на массив, если оно не является функцией и имеет value.length, который является целым числом больше или равно 0 и меньше или равно Number.MAX_SAFE_INTEGER.
Since
4.0.0
Arguments
-
value(*): Значение для проверки.
Returns
(boolean): Возвращает true, если value похож на массив, иначе false.
Example
_.isArrayLike([1, 2, 3]);
// => true
_.isArrayLike(document.body.children);
// => true
_.isArrayLike('abc');
// => true
_.isArrayLike(_.noop);
// => false
_.isArrayLikeObject(value)
Этот метод похож на _.isArrayLike, за исключением того, что он также проверяет, является ли value объектом.
Since
4.0.0
Arguments
-
value(*): Значение для проверки.
Returns
(boolean): Возвращает true, если value является объектом, похожим на массив, иначе false.
Example
_.isArrayLikeObject([1, 2, 3]);
// => true
_.isArrayLikeObject(document.body.children);
// => true
_.isArrayLikeObject('abc');
// => false
_.isArrayLikeObject(_.noop);
// => false
_.isBoolean(value)
Проверяет, классифицируется ли value как примитивный или объектный булев тип.
Since
0.1.0
Arguments
-
value(*): Значение для проверки.
Returns
(boolean): Возвращает true, если value является булевым значением, иначе false.
Example
_.isBoolean(false); // => true _.isBoolean(null); // => false
_.isBuffer(value)
Проверяет, является ли value буфером.
Since
4.3.0
Arguments
-
value(*): Значение для проверки.
Returns
(boolean): Возвращает true, если value является буфером, иначе false.
Example
_.isBuffer(new Buffer(2)); // => true _.isBuffer(new Uint8Array(2)); // => false
_.isDate(value)
Проверяет, классифицируется ли value как объект Date.
Since
0.1.0
Arguments
-
value(*): Значение для проверки.
Returns
(boolean): Возвращает true, если value является объектом даты, иначе false.
Example
_.isDate(new Date);
// => true
_.isDate('Mon April 23 2012');
// => false
_.isElement(value)
Проверяет, является ли value элементом DOM.
Since
0.1.0
Arguments
-
value(*): Значение для проверки.
Returns
(boolean): Возвращает true, если value является элементом DOM, иначе false.
Example
_.isElement(document.body);
// => true
_.isElement('<body>');
// => false
_.isEmpty(value)
Проверяет, является ли value пустым объектом, коллекцией, картой или множеством.
Объекты считаются пустыми, если у них нет собственных перечисляемых свойств со строковыми ключами.
Значения, похожие на массивы, такие как объекты arguments, массивы, буферы, строки или коллекции, похожие на jQuery, считаются пустыми, если у них length равен 0. Аналогично, карты и множества считаются пустыми, если у них size равен 0.
Since
0.1.0
Аргументы
-
value(*): Значение для проверки.
Возвращаемое значение
(boolean): Возвращает true если value пусто, иначе false.
Пример
_.isEmpty(null);
// => true
_.isEmpty(true);
// => true
_.isEmpty(1);
// => true
_.isEmpty([1, 2, 3]);
// => false
_.isEmpty({ 'a': 1 });
// => false
_.isEqual(value, other)
Выполняет глубокое сравнение двух значений, чтобы определить, эквивалентны ли они.
Примечание: Этот метод поддерживает сравнение массивов, буферов массивов, булевых значений, объектов Date, объектов Error, Map, чисел, Object объектов, регулярных выражений, Set, строк, символов и типизированных массивов. Object объекты сравниваются по своим собственным, а не унаследованным, перечисляемым свойствам. Функции и узлы DOM сравниваются по строгому равенству, т. е. ===.
С версии
0.1.0
Аргументы
-
value(*): Значение для сравнения. -
other(*): Другое значение для сравнения.
Возвращаемое значение
(boolean): Возвращает true если значения эквивалентны, иначе false.
Пример
var object = { 'a': 1 };
var other = { 'a': 1 };
_.isEqual(object, other);
// => true
object === other;
// => false
_.isEqualWith(value, other, [customizer])
Этот метод похож на _.isEqual, за исключением того, что он принимает customizer, который вызывается для сравнения значений. Если customizer возвращает undefined, сравнения обрабатываются методом вместо этого. customizer вызывается с шестью аргументами: (objValue, othValue [, index|key, object, other, stack]).
С версии
4.0.0
Аргументы
-
value(*): Значение для сравнения. -
other(*): Другое значение для сравнения. -
[customizer](Function): Функция для настройки сравнений.
Возвращаемое значение
(boolean): Возвращает true если значения эквивалентны, иначе false.
Пример
function isGreeting(value) {
return /^h(?:i|ello)$/.test(value);
}
function customizer(objValue, othValue) {
if (isGreeting(objValue) && isGreeting(othValue)) {
return true;
}
}
var array = ['hello', 'goodbye'];
var other = ['hi', 'goodbye'];
_.isEqualWith(array, other, customizer);
// => true
_.isError(value)
Проверяет, является ли value объектом Error, EvalError, RangeError, ReferenceError, SyntaxError, TypeError, или URIError.
С версии
3.0.0
Аргументы
-
value(*): Значение для проверки.
Возвращаемое значение
(boolean): Возвращает true если value является объектом ошибки, иначе false.
Пример
_.isError(new Error); // => true _.isError(Error); // => false
_.isFinite(value)
Проверяет, является ли value конечным примитивным числом.
Примечание: Этот метод основан на Number.isFinite.
С версии
0.1.0
Аргументы
-
value(*): Значение для проверки.
Возвращаемое значение
(boolean): Возвращает true если value является конечным числом, иначе false.
Пример
_.isFinite(3);
// => true
_.isFinite(Number.MIN_VALUE);
// => true
_.isFinite(Infinity);
// => false
_.isFinite('3');
// => false
_.isFunction(value)
Проверяет, классифицируется ли value как Function объект.
С версии
0.1.0
Аргументы
-
value(*): Значение для проверки.
Возвращаемое значение
(boolean): Возвращает true если value является функцией, иначе false.
Пример
_.isFunction(_); // => true _.isFunction(/abc/); // => false
_.isInteger(value)
Проверяет, является ли value целым числом.
Примечание: Этот метод основан на Number.isInteger.
С версии
4.0.0
Аргументы
-
value(*): Значение для проверки.
Возвращаемое значение
(boolean): Возвращает true если value является целым числом, иначе false.
Пример
_.isInteger(3);
// => true
_.isInteger(Number.MIN_VALUE);
// => false
_.isInteger(Infinity);
// => false
_.isInteger('3');
// => false
_.isLength(value)
Проверяет, является ли value допустимой длиной, подобной массиву.
Примечание: Этот метод слабо основан на ToLength.
С версии
4.0.0
Аргументы
-
value(*): Значение для проверки.
Возвращаемое значение
(boolean): Возвращает true если value является допустимой длиной, иначе false.
Пример
_.isLength(3);
// => true
_.isLength(Number.MIN_VALUE);
// => false
_.isLength(Infinity);
// => false
_.isLength('3');
// => false
_.isMap(value)
Проверяет, классифицируется ли value как Map объект.
С версии
4.3.0
Аргументы
-
value(*): Значение для проверки.
Возвращаемое значение
(boolean): Возвращает true если value является Map, иначе false.
Пример
_.isMap(new Map); // => true _.isMap(new WeakMap); // => false
_.isMatch(object, source)
Выполняет частичное глубокое сравнение object и source, чтобы определить, содержит ли object эквивалентные значения свойств.
Примечание: Этот метод эквивалентен _.matches, когда source частично применён.
Частичные сравнения будут соответствовать пустым массивам и пустым объектам source значениям для любого массива или значения объекта соответственно. См. _.isEqual для списка поддерживаемых сравнений значений.
С версии
3.0.0
Аргументы
-
object(Object): Объект для проверки. -
source(Object): Объект значений свойств для сопоставления.
Возвращаемое значение
(boolean): Возвращает true если object соответствует, иначе false.
Пример
var object = { 'a': 1, 'b': 2 };
_.isMatch(object, { 'b': 2 });
// => true
_.isMatch(object, { 'b': 1 });
// => false
_.isMatchWith(object, source, [customizer])
Этот метод похож на _.isMatch, за исключением того, что он принимает customizer, который вызывается для сравнения значений. Если customizer возвращает undefined, сравнения обрабатываются методом вместо этого. customizer вызывается с пятью аргументами: (objValue, srcValue, index|key, object, source).
С версии
4.0.0
Аргументы
-
object(Object): Объект для проверки. -
source(Object): Объект значений свойств для сопоставления. -
[customizer](Function): Функция для настройки сравнений.
Возвращаемое значение
(boolean): Возвращает true если object соответствует, иначе false.
Пример
function isGreeting(value) {
return /^h(?:i|ello)$/.test(value);
}
function customizer(objValue, srcValue) {
if (isGreeting(objValue) && isGreeting(srcValue)) {
return true;
}
}
var object = { 'greeting': 'hello' };
var source = { 'greeting': 'hi' };
_.isMatchWith(object, source, customizer);
// => true
_.isNaN(value)
Проверяет, является ли value NaN.
Примечание: Этот метод основан на Number.isNaN и не совпадает с глобальным isNaN, который возвращает true для undefined и других нечисловых значений.
С версии
0.1.0
Аргументы
-
value(*): Значение для проверки.
Возвращаемое значение
(boolean): Возвращает true если value является NaN, иначе false.
Пример
_.isNaN(NaN); // => true _.isNaN(new Number(NaN)); // => true isNaN(undefined); // => true _.isNaN(undefined); // => false
_.isNative(value)
Проверяет, является ли value первозданной собственной функцией.
Примечание: Этот метод не может надежно определять собственные функции в присутствии пакета core-js, поскольку core-js обходит такое обнаружение. Несмотря на многочисленные запросы, сопровождающий core-js ясно дал понять: любая попытка исправить обнаружение будет заблокирована. В результате у нас остается мало выбора, кроме как выдать ошибку. К сожалению, это также влияет на пакеты, такие как babel-polyfill, которые полагаются на core-js.
С версии
3.0.0
Аргументы
-
value(*): Значение для проверки.
Возвращаемое значение
(boolean): Возвращает true если value является собственной функцией, иначе false.
Пример
_.isNative(Array.prototype.push); // => true _.isNative(_); // => false
_.isNil(value)
Проверяет, является ли value null или undefined.
С версии
4.0.0
Аргументы
-
value(*): Значение для проверки.
Returns
(boolean): Возвращает true если value является nullish, иначе false.
Example
_.isNil(null); // => true _.isNil(void 0); // => true _.isNil(NaN); // => false
_.isNull(value)
Проверяет, является ли value null.
Since
0.1.0
Arguments
-
value(*): Значение для проверки.
Returns
(boolean): Возвращает true если value является null, иначе false.
Example
_.isNull(null); // => true _.isNull(void 0); // => false
_.isNumber(value)
Проверяет, классифицируется ли value как примитивный тип или объект Number .
Примечание: Для исключения Infinity, -Infinity и NaN, которые классифицируются как числа, используйте метод _.isFinite.
Since
0.1.0
Arguments
-
value(*): Значение для проверки.
Returns
(boolean): Возвращает true если value является числом, иначе false.
Example
_.isNumber(3);
// => true
_.isNumber(Number.MIN_VALUE);
// => true
_.isNumber(Infinity);
// => true
_.isNumber('3');
// => false
_.isObject(value)
Проверяет, является ли value типом языка Object . (например, массивы, функции, объекты, регулярные выражения, new Number(0) и new String(''))
Since
0.1.0
Arguments
-
value(*): Значение для проверки.
Returns
(boolean): Возвращает true если value является объектом, иначе false.
Example
_.isObject({});
// => true
_.isObject([1, 2, 3]);
// => true
_.isObject(_.noop);
// => true
_.isObject(null);
// => false
_.isObjectLike(value)
Проверяет, является ли value похожим на объект. Значение является похожим на объект, если оно не null и имеет typeof результат "object".
Since
4.0.0
Arguments
-
value(*): Значение для проверки.
Returns
(boolean): Возвращает true если value похож на объект, иначе false.
Example
_.isObjectLike({});
// => true
_.isObjectLike([1, 2, 3]);
// => true
_.isObjectLike(_.noop);
// => false
_.isObjectLike(null);
// => false
_.isPlainObject(value)
Проверяет, является ли value простым объектом, то есть объектом, созданным конструктором Object или объектом с [[Prototype]] null.
Since
0.8.0
Arguments
-
value(*): Значение для проверки.
Returns
(boolean): Возвращает true если value является простым объектом, иначе false.
Example
function Foo() {
this.a = 1;
}
_.isPlainObject(new Foo);
// => false
_.isPlainObject([1, 2, 3]);
// => false
_.isPlainObject({ 'x': 0, 'y': 0 });
// => true
_.isPlainObject(Object.create(null));
// => true
_.isRegExp(value)
Проверяет, классифицируется ли value как объект RegExp.
Since
0.1.0
Arguments
-
value(*): Значение для проверки.
Returns
(boolean): Возвращает true если value является регулярным выражением, иначе false.
Example
_.isRegExp(/abc/);
// => true
_.isRegExp('/abc/');
// => false
_.isSafeInteger(value)
Проверяет, является ли value безопасным целым числом. Целое число является безопасным, если оно является числом двойной точности IEEE-754, которое не является результатом округленного небезопасного целого числа.
Примечание: Этот метод основан на Number.isSafeInteger.
Since
4.0.0
Arguments
-
value(*): Значение для проверки.
Returns
(boolean): Возвращает true если value является безопасным целым числом, иначе false.
Example
_.isSafeInteger(3);
// => true
_.isSafeInteger(Number.MIN_VALUE);
// => false
_.isSafeInteger(Infinity);
// => false
_.isSafeInteger('3');
// => false
_.isSet(value)
Проверяет, классифицируется ли value как объект Set.
Since
4.3.0
Arguments
-
value(*): Значение для проверки.
Returns
(boolean): Возвращает true если value является множеством, иначе false.
Example
_.isSet(new Set); // => true _.isSet(new WeakSet); // => false
_.isString(value)
Проверяет, классифицируется ли value как примитивный тип или объект String.
Since
0.1.0
Arguments
-
value(*): Значение для проверки.
Returns
(boolean): Возвращает true если value является строкой, иначе false.
Example
_.isString('abc');
// => true
_.isString(1);
// => false
_.isSymbol(value)
Проверяет, классифицируется ли value как примитивный тип или объект Symbol.
Since
4.0.0
Arguments
-
value(*): Значение для проверки.
Returns
(boolean): Возвращает true если value является символом, иначе false.
Example
_.isSymbol(Symbol.iterator);
// => true
_.isSymbol('abc');
// => false
_.isTypedArray(value)
Проверяет, классифицируется ли value как типизированный массив.
Since
3.0.0
Arguments
-
value(*): Значение для проверки.
Returns
(boolean): Возвращает true если value является типизированным массивом, иначе false.
Example
_.isTypedArray(new Uint8Array); // => true _.isTypedArray([]); // => false
_.isUndefined(value)
Проверяет, является ли value undefined.
Since
0.1.0
Arguments
-
value(*): Значение для проверки.
Returns
(boolean): Возвращает true если value является undefined, иначе false.
Example
_.isUndefined(void 0); // => true _.isUndefined(null); // => false
_.isWeakMap(value)
Проверяет, классифицируется ли value как объект WeakMap.
Since
4.3.0
Arguments
-
value(*): Значение для проверки.
Returns
(boolean): Возвращает true если value является слабой картой, иначе false.
Example
_.isWeakMap(new WeakMap); // => true _.isWeakMap(new Map); // => false
_.isWeakSet(value)
Проверяет, классифицируется ли value как объект WeakSet.
Since
4.3.0
Arguments
-
value(*): Значение для проверки.
Returns
(boolean): Возвращает true если value является слабым множеством, иначе false.
Example
_.isWeakSet(new WeakSet); // => true _.isWeakSet(new Set); // => false
_.lt(value, other)
Проверяет, меньше ли value чем other.
Since
3.9.0
Arguments
-
value(*): Значение для сравнения. -
other(*): Другое значение для сравнения.
Returns
(boolean): Возвращает true если value меньше чем other, иначе false.
Example
_.lt(1, 3); // => true _.lt(3, 3); // => false _.lt(3, 1); // => false
_.lte(value, other)
Проверяет, меньше ли value или равно other.
Since
3.9.0
Arguments
-
value(*): Значение для сравнения. -
other(*): Другое значение для сравнения.
Returns
(boolean): Возвращает true если value меньше или равно other, иначе false.
Example
_.lte(1, 3); // => true _.lte(3, 3); // => true _.lte(3, 1); // => false
_.toArray(value)
Преобразует value в массив.
Since
0.1.0
Arguments
-
value(*): Преобразуемое значение.
Returns
(Array): Возвращает преобразованный массив.
Example
_.toArray({ 'a': 1, 'b': 2 });
// => [1, 2]
_.toArray('abc');
// => ['a', 'b', 'c']
_.toArray(1);
// => []
_.toArray(null);
// => []
_.toFinite(value)
Преобразует value в конечное число.
Since
4.12.0
Arguments
-
value(*): Преобразуемое значение.
Returns
(number): Возвращает преобразованное число.
Example
_.toFinite(3.2);
// => 3.2
_.toFinite(Number.MIN_VALUE);
// => 5e-324
_.toFinite(Infinity);
// => 1.7976931348623157e+308
_.toFinite('3.2');
// => 3.2
_.toInteger(value)
Преобразует value в целое число.
Примечание: Этот метод слабо основан на ToInteger.
Since
4.0.0
Arguments
-
value(*): Преобразуемое значение.
Returns
(number): Возвращает преобразованное целое число.
Example
_.toInteger(3.2);
// => 3
_.toInteger(Number.MIN_VALUE);
// => 0
_.toInteger(Infinity);
// => 1.7976931348623157e+308
_.toInteger('3.2');
// => 3
_.toLength(value)
Преобразует value в целое число, подходящее для использования в качестве длины массивоподобного объекта.
Примечание: Этот метод основан на ToLength.
Since
4.0.0
Arguments
-
value(*): Преобразуемое значение.
Returns
(number): Возвращает преобразованное целое число.
Example
_.toLength(3.2);
// => 3
_.toLength(Number.MIN_VALUE);
// => 0
_.toLength(Infinity);
// => 4294967295
_.toLength('3.2');
// => 3
_.toNumber(value)
Преобразует value в число.
Since
4.0.0
Arguments
-
value(*): Обрабатываемое значение.
Returns
(number): Возвращает число.
Example
_.toNumber(3.2);
// => 3.2
_.toNumber(Number.MIN_VALUE);
// => 5e-324
_.toNumber(Infinity);
// => Infinity
_.toNumber('3.2');
// => 3.2
_.toPlainObject(value)
Преобразует value в простой объект, выравнивая унаследованные перечисляемые свойства со строковыми ключами value в собственные свойства простого объекта.
Since
3.0.0
Arguments
-
value(*): Преобразуемое значение.
Returns
(Object): Возвращает преобразованный простой объект.
Example
function Foo() {
this.b = 2;
}
Foo.prototype.c = 3;
_.assign({ 'a': 1 }, new Foo);
// => { 'a': 1, 'b': 2 }
_.assign({ 'a': 1 }, _.toPlainObject(new Foo));
// => { 'a': 1, 'b': 2, 'c': 3 }
_.toSafeInteger(value)
Преобразует value в безопасное целое число. Безопасное целое число можно корректно сравнивать и представлять.
Since
4.0.0
Arguments
-
value(*): Преобразуемое значение.
Returns
(number): Возвращает преобразованное целое число.
Example
_.toSafeInteger(3.2);
// => 3
_.toSafeInteger(Number.MIN_VALUE);
// => 0
_.toSafeInteger(Infinity);
// => 9007199254740991
_.toSafeInteger('3.2');
// => 3
_.toString(value)
Преобразует value в строку. Для значений null и undefined возвращается пустая строка. Знак -0 сохраняется.
Since
4.0.0
Arguments
-
value(*): Преобразуемое значение.
Returns
(string): Возвращает преобразованную строку.
Example
_.toString(null); // => '' _.toString(-0); // => '-0' _.toString([1, 2, 3]); // => '1,2,3'
Методы «Math»
_.add(augend, addend)
Складывает два числа.
Since
3.4.0
Arguments
-
augend(number): Первое число в сложении. -
addend(number): Второе число в сложении.
Returns
(number): Возвращает сумму.
Example
_.add(6, 4); // => 10
_.ceil(number, [precision=0])
Вычисляет number, округленное вверх до precision.
Since
3.10.0
Arguments
-
number(number): Число для округления вверх. -
[precision=0](number): Точность округления вверх.
Returns
(number): Возвращает округленное вверх число.
Example
_.ceil(4.006); // => 5 _.ceil(6.004, 2); // => 6.01 _.ceil(6040, -2); // => 6100
_.divide(dividend, divisor)
Делит два числа.
Since
4.7.0
Arguments
-
dividend(number): Первое число в делении. -
divisor(number): Второе число в делении.
Returns
(number): Возвращает частное.
Example
_.divide(6, 4); // => 1.5
_.floor(number, [precision=0])
Вычисляет number, округленное вниз до precision.
Since
3.10.0
Arguments
-
number(number): Число для округления вниз. -
[precision=0](number): Точность округления вниз.
Returns
(number): Возвращает округленное вниз число.
Example
_.floor(4.006); // => 4 _.floor(0.046, 2); // => 0.04 _.floor(4060, -2); // => 4000
_.max(array)
Вычисляет максимальное значение array. Если array пуст или ложен, возвращается undefined.
Since
0.1.0
Arguments
-
array(Array): Массив для итерации.
Returns
(*): Возвращает максимальное значение.
Example
_.max([4, 2, 8, 6]); // => 8 _.max([]); // => undefined
_.maxBy(array, [iteratee=_.identity])
Этот метод похож на _.max, за исключением того, что он принимает iteratee, который вызывается для каждого элемента в array для генерации критерия, по которому ранжируется значение. Итератор вызывается с одним аргументом: (value).
Since
4.0.0
Arguments
-
array(Array): Массив для итерации. -
[iteratee=_.identity](Function): Итератор, вызываемый для каждого элемента.
Returns
(*): Возвращает максимальное значение.
Example
var objects = [{ 'n': 1 }, { 'n': 2 }];
_.maxBy(objects, function(o) { return o.n; });
// => { 'n': 2 }
// The `_.property` iteratee shorthand.
_.maxBy(objects, 'n');
// => { 'n': 2 }
_.mean(array)
Вычисляет среднее значение элементов в array.
Since
4.0.0
Arguments
-
array(Array): Массив для итерации.
Returns
(number): Возвращает среднее значение.
Example
_.mean([4, 2, 8, 6]); // => 5
_.meanBy(array, [iteratee=_.identity])
Этот метод похож на _.mean, за исключением того, что он принимает iteratee, который вызывается для каждого элемента в array для генерации значения, которое нужно усреднить. Итератор вызывается с одним аргументом: (value).
Since
4.7.0
Arguments
-
array(Array): Массив для итерации. -
[iteratee=_.identity](Function): Итератор, вызываемый для каждого элемента.
Returns
(number): Возвращает среднее значение.
Example
var objects = [{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }];
_.meanBy(objects, function(o) { return o.n; });
// => 5
// The `_.property` iteratee shorthand.
_.meanBy(objects, 'n');
// => 5
_.min(array)
Вычисляет минимальное значение array. Если array пуст или ложен, возвращается undefined.
Since
0.1.0
Arguments
-
array(Array): Массив для итерации.
Returns
(*): Возвращает минимальное значение.
Example
_.min([4, 2, 8, 6]); // => 2 _.min([]); // => undefined
_.minBy(array, [iteratee=_.identity])
Этот метод похож на _.min, за исключением того, что он принимает iteratee, который вызывается для каждого элемента в array для генерации критерия, по которому ранжируется значение. Итератор вызывается с одним аргументом: (value).
Since
4.0.0
Arguments
-
array(Array): Массив для итерации. -
[iteratee=_.identity](Function): Итератор, вызываемый для каждого элемента.
Returns
(*): Возвращает минимальное значение.
Example
var objects = [{ 'n': 1 }, { 'n': 2 }];
_.minBy(objects, function(o) { return o.n; });
// => { 'n': 1 }
// The `_.property` iteratee shorthand.
_.minBy(objects, 'n');
// => { 'n': 1 }
_.multiply(multiplier, multiplicand)
Умножает два числа.
Since
4.7.0
Arguments
-
multiplier(number): Первое число в умножении. -
multiplicand(number): Второе число в умножении.
Returns
(number): Возвращает произведение.
Example
_.multiply(6, 4); // => 24
_.round(number, [precision=0])
Вычисляет number округленное до precision.
Since
3.10.0
Arguments
-
number(number): Число для округления. -
[precision=0](number): Точность округления.
Returns
(number): Возвращает округленное число.
Example
_.round(4.006); // => 4 _.round(4.006, 2); // => 4.01 _.round(4060, -2); // => 4100
_.subtract(minuend, subtrahend)
Вычитает два числа.
Since
4.0.0
Arguments
-
minuend(number): Первое число в вычитании. -
subtrahend(number): Второе число в вычитании.
Returns
(number): Возвращает разность.
Example
_.subtract(6, 4); // => 2
_.sum(array)
Вычисляет сумму значений в array.
Since
3.4.0
Arguments
-
array(Array): Массив для итерации.
Returns
(number): Возвращает сумму.
Example
_.sum([4, 2, 8, 6]); // => 20
_.sumBy(array, [iteratee=_.identity])
Этот метод похож на _.sum, за исключением того, что он принимает iteratee, который вызывается для каждого элемента в array для генерации значения, которое будет суммироваться. Итератор вызывается с одним аргументом: (value).
Since
4.0.0
Arguments
-
array(Array): Массив для итерации. -
[iteratee=_.identity](Function): Итератор, вызываемый для каждого элемента.
Returns
(number): Возвращает сумму.
Example
var objects = [{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }];
_.sumBy(objects, function(o) { return o.n; });
// => 20
// The `_.property` iteratee shorthand.
_.sumBy(objects, 'n');
// => 20
Методы «Number»
_.clamp(number, [lower], upper)
Зажимает number в пределах включающих lower и upper границ.
Since
4.0.0
Arguments
-
number(number): Число для зажима. -
[lower](number): Нижняя граница. -
upper(number): Верхняя граница.
Returns
(number): Возвращает зажатое число.
Example
_.clamp(-10, -5, 5); // => -5 _.clamp(10, -5, 5); // => 5
_.inRange(number, [start=0], end)
Проверяет, находится ли n между start и до, но не включая, end. Если end не указан, он устанавливается в start с start затем устанавливается в 0. Если start больше, чем end, параметры меняются местами для поддержки отрицательных диапазонов.
Since
3.3.0
Arguments
-
number(number): Число для проверки. -
[start=0](number): Начало диапазона. -
end(number): Конец диапазона.
Returns
(boolean): Возвращает true, если number находится в диапазоне, иначе false.
Example
_.inRange(3, 2, 4); // => true _.inRange(4, 8); // => true _.inRange(4, 2); // => false _.inRange(2, 2); // => false _.inRange(1.2, 2); // => true _.inRange(5.2, 4); // => false _.inRange(-3, -2, -6); // => true
_.random([lower=0], [upper=1], [floating])
Генерирует случайное число между включающими lower и upper границами. Если предоставлен только один аргумент, возвращается число между 0 и заданным числом. Если floating является true, или lower или upper являются числами с плавающей запятой, возвращается число с плавающей запятой вместо целого числа.
Примечание: JavaScript следует стандарту IEEE-754 для разрешения значений с плавающей запятой, что может привести к неожиданным результатам.
Since
0.7.0
Arguments
-
[lower=0](number): Нижняя граница. -
[upper=1](number): Верхняя граница. -
[floating](boolean): Указывает на возврат числа с плавающей запятой.
Returns
(number): Возвращает случайное число.
Example
_.random(0, 5); // => an integer between 0 and 5 _.random(5); // => also an integer between 0 and 5 _.random(5, true); // => a floating-point number between 0 and 5 _.random(1.2, 5.2); // => a floating-point number between 1.2 and 5.2
Методы «Object»
_.assign(object, [sources])
Назначает собственные перечисляемые свойства строковых ключей исходных объектов целевому объекту. Исходные объекты применяются слева направо. Последующие источники перезаписывают назначения свойств предыдущих источников.
Примечание: Этот метод изменяет object и слабо основан на Object.assign.
Since
0.10.0
Arguments
-
object(Object): Целевой объект. -
[sources](...Object): Исходные объекты.
Returns
(Object): Возвращает object.
Example
function Foo() {
this.a = 1;
}
function Bar() {
this.c = 3;
}
Foo.prototype.b = 2;
Bar.prototype.d = 4;
_.assign({ 'a': 0 }, new Foo, new Bar);
// => { 'a': 1, 'c': 3 }
_.assignIn(object, [sources])
Этот метод похож на _.assign, за исключением того, что он итерирует собственные и унаследованные свойства источника.
Примечание: Этот метод изменяет object.
Since
4.0.0
Aliases
_.extend
Arguments
-
object(Object): Целевой объект. -
[sources](...Object): Исходные объекты.
Returns
(Object): Возвращает object.
Example
function Foo() {
this.a = 1;
}
function Bar() {
this.c = 3;
}
Foo.prototype.b = 2;
Bar.prototype.d = 4;
_.assignIn({ 'a': 0 }, new Foo, new Bar);
// => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 }
_.assignInWith(object, sources, [customizer])
Этот метод похож на _.assignIn, за исключением того, что он принимает customizer, который вызывается для получения назначенных значений. Если customizer возвращает undefined, обработка назначения осуществляется методом. customizer вызывается с пятью аргументами: (objValue, srcValue, key, object, source).
Примечание: Этот метод изменяет object.
Since
4.0.0
Aliases
_.extendWith
Arguments
-
object(Object): Целевой объект. -
sources(...Object): Исходные объекты. -
[customizer](Function): Функция для настройки назначенных значений.
Returns
(Object): Возвращает object.
Example
function customizer(objValue, srcValue) {
return _.isUndefined(objValue) ? srcValue : objValue;
}
var defaults = _.partialRight(_.assignInWith, customizer);
defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });
// => { 'a': 1, 'b': 2 }
_.assignWith(object, sources, [customizer])
Этот метод похож на _.assign, за исключением того, что он принимает customizer, который вызывается для получения назначенных значений. Если customizer возвращает undefined, обработка назначения осуществляется методом. customizer вызывается с пятью аргументами: (objValue, srcValue, key, object, source).
Примечание: Этот метод изменяет object.
Since
4.0.0
Arguments
-
object(Object): Целевой объект. -
sources(...Object): Исходные объекты. -
[customizer](Function): Функция для настройки назначенных значений.
Returns
(Object): Возвращает object.
Example
function customizer(objValue, srcValue) {
return _.isUndefined(objValue) ? srcValue : objValue;
}
var defaults = _.partialRight(_.assignWith, customizer);
defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });
// => { 'a': 1, 'b': 2 }
_.at(object, [paths])
Создает массив значений, соответствующих paths из object.
Since
1.0.0
Arguments
-
object(Object): Объект для итерации. -
[paths](...(string|string[])): Пути к свойствам для выбора.
Returns
(Array): Возвращает выбранные значения.
Example
var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };
_.at(object, ['a[0].b.c', 'a[1]']);
// => [3, 4]
_.create(prototype, [properties])
Создает объект, который наследуется от объекта prototype. Если задан объект properties, его собственные перечисляемые свойства строковых ключей назначаются созданному объекту.
Since
2.3.0
Arguments
-
prototype(Object): Объект для наследования. -
[properties](Object): Свойства для присваивания объекту.
Returns
(Object): Возвращает новый объект.
Example
function Shape() {
this.x = 0;
this.y = 0;
}
function Circle() {
Shape.call(this);
}
Circle.prototype = _.create(Shape.prototype, {
'constructor': Circle
});
var circle = new Circle;
circle instanceof Circle;
// => true
circle instanceof Shape;
// => true
_.defaults(object, [sources])
Присваивает собственные и унаследованные перечисляемые свойства строковых ключей исходных объектов целевому объекту для всех свойств назначения, которые соответствуют undefined. Исходные объекты применяются слева направо. После установки свойства дополнительные значения того же свойства игнорируются.
Примечание: Этот метод изменяет object.
Since
0.1.0
Arguments
-
object(Object): Целевой объект. -
[sources](...Object): Исходные объекты.
Returns
(Object): Возвращает object.
Example
_.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });
// => { 'a': 1, 'b': 2 }
_.defaultsDeep(object, [sources])
Этот метод похож на _.defaults, за исключением того, что он рекурсивно присваивает свойства по умолчанию.
Примечание: Этот метод изменяет object.
Since
3.10.0
Arguments
-
object(Object): Целевой объект. -
[sources](...Object): Исходные объекты.
Returns
(Object): Возвращает object.
Example
_.defaultsDeep({ 'a': { 'b': 2 } }, { 'a': { 'b': 1, 'c': 3 } });
// => { 'a': { 'b': 2, 'c': 3 } }
_.findKey(object, [predicate=_.identity])
Этот метод похож на _.find, за исключением того, что он возвращает ключ первого элемента, predicate возвращает истинное значение вместо самого элемента.
Since
1.1.0
Arguments
-
object(Object): Объект для проверки. -
[predicate=_.identity](Function): Функция, вызываемая на каждой итерации.
Returns
(*): Возвращает ключ совпавшего элемента, иначе undefined.
Example
var users = {
'barney': { 'age': 36, 'active': true },
'fred': { 'age': 40, 'active': false },
'pebbles': { 'age': 1, 'active': true }
};
_.findKey(users, function(o) { return o.age < 40; });
// => 'barney' (iteration order is not guaranteed)
// The `_.matches` iteratee shorthand.
_.findKey(users, { 'age': 1, 'active': true });
// => 'pebbles'
// The `_.matchesProperty` iteratee shorthand.
_.findKey(users, ['active', false]);
// => 'fred'
// The `_.property` iteratee shorthand.
_.findKey(users, 'active');
// => 'barney'
_.findLastKey(object, [predicate=_.identity])
Этот метод похож на _.findKey, за исключением того, что он перебирает элементы коллекции в обратном порядке.
Since
2.0.0
Arguments
-
object(Object): Объект для проверки. -
[predicate=_.identity](Function): Функция, вызываемая на каждой итерации.
Returns
(*): Возвращает ключ совпавшего элемента, иначе undefined.
Example
var users = {
'barney': { 'age': 36, 'active': true },
'fred': { 'age': 40, 'active': false },
'pebbles': { 'age': 1, 'active': true }
};
_.findLastKey(users, function(o) { return o.age < 40; });
// => returns 'pebbles' assuming `_.findKey` returns 'barney'
// The `_.matches` iteratee shorthand.
_.findLastKey(users, { 'age': 36, 'active': true });
// => 'barney'
// The `_.matchesProperty` iteratee shorthand.
_.findLastKey(users, ['active', false]);
// => 'fred'
// The `_.property` iteratee shorthand.
_.findLastKey(users, 'active');
// => 'pebbles'
_.forIn(object, [iteratee=_.identity])
Перебирает собственные и унаследованные перечисляемые свойства строковых ключей объекта и вызывает iteratee для каждого свойства. Функция iteratee вызывается с тремя аргументами: (value, key, object). Функции iteratee могут досрочно завершить итерацию, явно вернув false.
Since
0.3.0
Arguments
-
object(Object): Объект для итерации. -
[iteratee=_.identity](Function): Функция, вызываемая на каждой итерации.
Returns
(Object): Возвращает object.
Example
function Foo() {
this.a = 1;
this.b = 2;
}
Foo.prototype.c = 3;
_.forIn(new Foo, function(value, key) {
console.log(key);
});
// => Logs 'a', 'b', then 'c' (iteration order is not guaranteed).
_.forInRight(object, [iteratee=_.identity])
Этот метод похож на _.forIn, за исключением того, что он перебирает свойства object в обратном порядке.
Since
2.0.0
Arguments
-
object(Object): Объект для итерации. -
[iteratee=_.identity](Function): Функция, вызываемая на каждой итерации.
Returns
(Object): Возвращает object.
Example
function Foo() {
this.a = 1;
this.b = 2;
}
Foo.prototype.c = 3;
_.forInRight(new Foo, function(value, key) {
console.log(key);
});
// => Logs 'c', 'b', then 'a' assuming `_.forIn` logs 'a', 'b', then 'c'.
_.forOwn(object, [iteratee=_.identity])
Перебирает собственные перечисляемые свойства строковых ключей объекта и вызывает iteratee для каждого свойства. Функция iteratee вызывается с тремя аргументами: (value, key, object). Функции iteratee могут досрочно завершить итерацию, явно вернув false.
Since
0.3.0
Arguments
-
object(Object): Объект для итерации. -
[iteratee=_.identity](Function): Функция, вызываемая на каждой итерации.
Returns
(Object): Возвращает object.
Example
function Foo() {
this.a = 1;
this.b = 2;
}
Foo.prototype.c = 3;
_.forOwn(new Foo, function(value, key) {
console.log(key);
});
// => Logs 'a' then 'b' (iteration order is not guaranteed).
_.forOwnRight(object, [iteratee=_.identity])
Этот метод похож на _.forOwn, за исключением того, что он перебирает свойства object в обратном порядке.
Since
2.0.0
Arguments
-
object(Object): Объект для итерации. -
[iteratee=_.identity](Function): Функция, вызываемая на каждой итерации.
Returns
(Object): Возвращает object.
Example
function Foo() {
this.a = 1;
this.b = 2;
}
Foo.prototype.c = 3;
_.forOwnRight(new Foo, function(value, key) {
console.log(key);
});
// => Logs 'b' then 'a' assuming `_.forOwn` logs 'a' then 'b'.
_.functions(object)
Создает массив имен свойств-функций из собственных перечисляемых свойств object.
Since
0.1.0
Arguments
-
object(Object): Объект для проверки.
Returns
(Array): Возвращает имена функций.
Example
function Foo() {
this.a = _.constant('a');
this.b = _.constant('b');
}
Foo.prototype.c = _.constant('c');
_.functions(new Foo);
// => ['a', 'b']
_.functionsIn(object)
Создает массив имен свойств-функций из собственных и унаследованных перечисляемых свойств object.
Since
4.0.0
Arguments
-
object(Object): Объект для проверки.
Returns
(Array): Возвращает имена функций.
Example
function Foo() {
this.a = _.constant('a');
this.b = _.constant('b');
}
Foo.prototype.c = _.constant('c');
_.functionsIn(new Foo);
// => ['a', 'b', 'c']
_.get(object, path, [defaultValue])
Получает значение по path object. Если полученное значение undefined, то вместо него возвращается defaultValue.
Since
3.7.0
Arguments
-
object(Object): Объект для запроса. -
path(Array|string): Путь к свойству для получения. -
[defaultValue](*): Значение, возвращаемое дляundefinedразрешенных значений.
Returns
(*): Возвращает разрешенное значение.
Example
var object = { 'a': [{ 'b': { 'c': 3 } }] };
_.get(object, 'a[0].b.c');
// => 3
_.get(object, ['a', '0', 'b', 'c']);
// => 3
_.get(object, 'a.b.c', 'default');
// => 'default'
_.has(object, path)
Проверяет, является ли path прямым свойством object.
Since
0.1.0
Arguments
-
object(Object): Объект для запроса. -
path(Array|string): Путь для проверки.
Returns
(boolean): Возвращает true, если path существует, иначе false.
Example
var object = { 'a': { 'b': 2 } };
var other = _.create({ 'a': _.create({ 'b': 2 }) });
_.has(object, 'a');
// => true
_.has(object, 'a.b');
// => true
_.has(object, ['a', 'b']);
// => true
_.has(other, 'a');
// => false
_.hasIn(object, path)
Проверяет, является ли path прямым или унаследованным свойством object.
Since
4.0.0
Arguments
-
object(Object): Объект для запроса. -
path(Array|string): Путь для проверки.
Returns
(boolean): Возвращает true, если path существует, иначе false.
Example
var object = _.create({ 'a': _.create({ 'b': 2 }) });
_.hasIn(object, 'a');
// => true
_.hasIn(object, 'a.b');
// => true
_.hasIn(object, ['a', 'b']);
// => true
_.hasIn(object, 'b');
// => false
_.invert(object)
Создает объект, составленный из инвертированных ключей и значений object. Если object содержит повторяющиеся значения, последующие значения перезаписывают присваивания свойств предыдущих значений.
Since
0.7.0
Arguments
-
object(Object): Объект для инвертирования.
Returns
(Object): Возвращает новый инвертированный объект.
Example
var object = { 'a': 1, 'b': 2, 'c': 1 };
_.invert(object);
// => { '1': 'c', '2': 'b' }
_.invertBy(object, [iteratee=_.identity])
Этот метод похож на _.invert, за исключением того, что инвертированный объект создаётся из результатов выполнения каждого элемента object через iteratee. Соответствующее инвертированное значение каждого инвертированного ключа — это массив ключей, ответственных за генерацию инвертированного значения. Итерируемая функция вызывается с одним аргументом: (value).
Since
4.1.0
Arguments
-
object(Object): Объект для инвертирования. -
[iteratee=_.identity](Function): Итерируемая функция, вызываемая для каждого элемента.
Returns
(Object): Возвращает новый инвертированный объект.
Example
var object = { 'a': 1, 'b': 2, 'c': 1 };
_.invertBy(object);
// => { '1': ['a', 'c'], '2': ['b'] }
_.invertBy(object, function(value) {
return 'group' + value;
});
// => { 'group1': ['a', 'c'], 'group2': ['b'] }
_.invoke(object, path, [args])
Вызывает метод по path object.
Since
4.0.0
Arguments
-
object(Object): Объект для запроса. -
path(Array|string): Путь к методу для вызова. -
[args](...*): Аргументы для вызова метода.
Returns
(*): Возвращает результат вызванного метода.
Example
var object = { 'a': [{ 'b': { 'c': [1, 2, 3, 4] } }] };
_.invoke(object, 'a[0].b.c.slice', 1, 3);
// => [2, 3]
_.keys(object)
Создаёт массив собственных перечисляемых имён свойств object.
Примечание: Необъектные значения принудительно преобразуются в объекты. См. спецификацию ES для получения более подробной информации.
Since
0.1.0
Arguments
-
object(Object): Объект для запроса.
Returns
(Array): Возвращает массив имён свойств.
Example
function Foo() {
this.a = 1;
this.b = 2;
}
Foo.prototype.c = 3;
_.keys(new Foo);
// => ['a', 'b'] (iteration order is not guaranteed)
_.keys('hi');
// => ['0', '1']
_.keysIn(object)
Создаёт массив собственных и унаследованных перечисляемых имён свойств object.
Примечание: Необъектные значения принудительно преобразуются в объекты.
Since
3.0.0
Arguments
-
object(Object): Объект для запроса.
Returns
(Array): Возвращает массив имён свойств.
Example
function Foo() {
this.a = 1;
this.b = 2;
}
Foo.prototype.c = 3;
_.keysIn(new Foo);
// => ['a', 'b', 'c'] (iteration order is not guaranteed)
_.mapKeys(object, [iteratee=_.identity])
Противоположность _.mapValues; этот метод создаёт объект с теми же значениями, что и object, и ключами, сгенерированными путём прохождения каждого собственного перечисляемого свойства со строковым ключом object через iteratee. Итерируемая функция вызывается с тремя аргументами: (value, key, object).
Since
3.8.0
Arguments
-
object(Object): Объект для итерации. -
[iteratee=_.identity](Function): Функция, вызываемая на каждой итерации.
Returns
(Object): Возвращает новый сопоставленный объект.
Example
_.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) {
return key + value;
});
// => { 'a1': 1, 'b2': 2 }
_.mapValues(object, [iteratee=_.identity])
Создаёт объект с теми же ключами, что и object, и значениями, сгенерированными путём прохождения каждого собственного перечисляемого свойства со строковым ключом object через iteratee. Итерируемая функция вызывается с тремя аргументами:
(value, key, object).
Since
2.4.0
Arguments
-
object(Object): Объект для итерации. -
[iteratee=_.identity](Function): Функция, вызываемая на каждой итерации.
Returns
(Object): Возвращает новый сопоставленный объект.
Example
var users = {
'fred': { 'user': 'fred', 'age': 40 },
'pebbles': { 'user': 'pebbles', 'age': 1 }
};
_.mapValues(users, function(o) { return o.age; });
// => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)
// The `_.property` iteratee shorthand.
_.mapValues(users, 'age');
// => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)
_.merge(object, [sources])
Этот метод похож на _.assign, за исключением того, что он рекурсивно объединяет собственные и унаследованные перечисляемые свойства со строковыми ключами из исходных объектов в целевой объект. Свойства источника, которые разрешаются в undefined, пропускаются, если существует значение назначения. Свойства массивов и простых объектов объединяются рекурсивно. Другие объекты и типы значений переопределяются присваиванием. Объекты источника применяются слева направо. Последующие источники перезаписывают присваивания свойств предыдущих источников.
Примечание: Этот метод изменяет object.
Since
0.5.0
Arguments
-
object(Object): Целевой объект. -
[sources](...Object): Исходные объекты.
Returns
(Object): Возвращает object.
Example
var object = {
'a': [{ 'b': 2 }, { 'd': 4 }]
};
var other = {
'a': [{ 'c': 3 }, { 'e': 5 }]
};
_.merge(object, other);
// => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }
_.mergeWith(object, sources, customizer)
Этот метод похож на _.merge, за исключением того, что он принимает customizer, который вызывается для получения объединённых значений свойств назначения и источника. Если customizer возвращает undefined, обработка слияния выполняется методом. customizer вызывается с шестью аргументами:
(objValue, srcValue, key, object, source, stack).
Примечание: Этот метод изменяет object.
Since
4.0.0
Arguments
-
object(Object): Целевой объект. -
sources(...Object): Исходные объекты. -
customizer(Function): Функция для настройки присваиваемых значений.
Returns
(Object): Возвращает object.
Example
function customizer(objValue, srcValue) {
if (_.isArray(objValue)) {
return objValue.concat(srcValue);
}
}
var object = { 'a': [1], 'b': [2] };
var other = { 'a': [3], 'b': [4] };
_.mergeWith(object, other, customizer);
// => { 'a': [1, 3], 'b': [2, 4] }
_.omit(object, [paths])
Противоположность _.pick; этот метод создаёт объект, состоящий из собственных и унаследованных перечисляемых путей свойств object, которые не опущены.
Примечание: Этот метод значительно медленнее, чем _.pick.
Since
0.1.0
Arguments
-
object(Object): Исходный объект. -
[paths](...(string|string[])): Пути свойств для пропуска.
Returns
(Object): Возвращает новый объект.
Example
var object = { 'a': 1, 'b': '2', 'c': 3 };
_.omit(object, ['a', 'c']);
// => { 'b': '2' }
_.omitBy(object, [predicate=_.identity])
Противоположность _.pickBy; этот метод создаёт объект, состоящий из собственных и унаследованных перечисляемых свойств со строковыми ключами object, для которых predicate не возвращает истинное значение. Предикат вызывается с двумя аргументами: (value, key).
Since
4.0.0
Arguments
-
object(Object): Исходный объект. -
[predicate=_.identity](Function): Функция, вызываемая для каждого свойства.
Returns
(Object): Возвращает новый объект.
Example
var object = { 'a': 1, 'b': '2', 'c': 3 };
_.omitBy(object, _.isNumber);
// => { 'b': '2' }
_.pick(object, [paths])
Создаёт объект, состоящий из выбранных свойств object.
Since
0.1.0
Arguments
-
object(Object): Исходный объект. -
[paths](...(string|string[])): Пути свойств для выбора.
Returns
(Object): Возвращает новый объект.
Example
var object = { 'a': 1, 'b': '2', 'c': 3 };
_.pick(object, ['a', 'c']);
// => { 'a': 1, 'c': 3 }
_.pickBy(object, [predicate=_.identity])
Создаёт объект, состоящий из свойств object, для которых predicate возвращает истинное значение. Предикат вызывается с двумя аргументами: (value, key).
Since
4.0.0
Arguments
-
object(Object): Исходный объект. -
[predicate=_.identity](Function): Функция, вызываемая для каждого свойства.
Returns
(Object): Возвращает новый объект.
Example
var object = { 'a': 1, 'b': '2', 'c': 3 };
_.pickBy(object, _.isNumber);
// => { 'a': 1, 'c': 3 }
_.result(object, path, [defaultValue])
Этот метод похож на _.get, за исключением того, что если разрешённое значение является функцией, она вызывается со связыванием this родительского объекта, и возвращается его результат.
Since
0.1.0
Arguments
-
object(Object): Объект для запроса. -
path(Array|string): Путь к свойству для разрешения. -
[defaultValue](*): Значение, возвращаемое для неразрешённых значенийundefined.
Returns
(*): Возвращает разрешённое значение.
Example
var object = { 'a': [{ 'b': { 'c1': 3, 'c2': _.constant(4) } }] };
_.result(object, 'a[0].b.c1');
// => 3
_.result(object, 'a[0].b.c2');
// => 4
_.result(object, 'a[0].b.c3', 'default');
// => 'default'
_.result(object, 'a[0].b.c3', _.constant('default'));
// => 'default'
_.set(object, path, value)
Устанавливает значение в path object. Если часть path не существует, она создается. Массивы создаются для отсутствующих индексных свойств, а объекты — для всех остальных отсутствующих свойств. Используйте _.setWith для настройки создания path.
Примечание: Этот метод изменяет object.
Since
3.7.0
Arguments
-
object(Object): Объект для изменения. -
path(Array|string): Путь к устанавливаемому свойству. -
value(*): Устанавливаемое значение.
Returns
(Object): Возвращает object.
Example
var object = { 'a': [{ 'b': { 'c': 3 } }] };
_.set(object, 'a[0].b.c', 4);
console.log(object.a[0].b.c);
// => 4
_.set(object, ['x', '0', 'y', 'z'], 5);
console.log(object.x[0].y.z);
// => 5
_.setWith(object, path, value, [customizer])
Этот метод похож на _.set, за исключением того, что он принимает customizer, который вызывается для создания объектов path. Если customizer возвращает undefined, обработка создания пути осуществляется методом вместо этого. customizer вызывается с тремя аргументами: (nsValue, key, nsObject).
Примечание: Этот метод изменяет object.
Since
4.0.0
Arguments
-
object(Object): Объект для изменения. -
path(Array|string): Путь к устанавливаемому свойству. -
value(*): Устанавливаемое значение. -
[customizer](Function): Функция для настройки присваиваемых значений.
Returns
(Object): Возвращает object.
Example
var object = {};
_.setWith(object, '[0][1]', 'a', Object);
// => { '0': { '1': 'a' } }
_.toPairs(object)
Создает массив собственных перечисляемых пар «ключ-значение» со строковыми ключами для object, которые могут быть использованы _.fromPairs. Если object является отображением или множеством, возвращаются его записи.
Since
4.0.0
Aliases
_.entries
Arguments
-
object(Object): Объект для запроса.
Returns
(Array): Возвращает пары «ключ-значение».
Example
function Foo() {
this.a = 1;
this.b = 2;
}
Foo.prototype.c = 3;
_.toPairs(new Foo);
// => [['a', 1], ['b', 2]] (iteration order is not guaranteed)
_.toPairsIn(object)
Создает массив собственных и унаследованных перечисляемых пар «ключ-значение» со строковыми ключами для object, которые могут быть использованы _.fromPairs. Если object является отображением или множеством, возвращаются его записи.
Since
4.0.0
Aliases
_.entriesIn
Arguments
-
object(Object): Объект для запроса.
Returns
(Array): Возвращает пары «ключ-значение».
Example
function Foo() {
this.a = 1;
this.b = 2;
}
Foo.prototype.c = 3;
_.toPairsIn(new Foo);
// => [['a', 1], ['b', 2], ['c', 3]] (iteration order is not guaranteed)
_.transform(object, [iteratee=_.identity], [accumulator])
Альтернатива _.reduce; этот метод преобразует object в новый объект accumulator, который является результатом прогона каждого из его собственных перечисляемых свойств со строковыми ключами через iteratee, при этом каждое вызова может потенциально изменять объект accumulator. Если accumulator не предоставлен, будет использоваться новый объект с тем же [[Prototype]]. Итерируемая функция вызывается с четырьмя аргументами: (accumulator, value, key, object). Функции итератора могут досрочно завершить итерацию, явно возвращая false.
Since
1.3.0
Arguments
-
object(Object): Объект для итерации. -
[iteratee=_.identity](Function): Функция, вызываемая на каждой итерации. -
[accumulator](*): Пользовательское значение накопителя.
Returns
(*): Возвращает накопленное значение.
Example
_.transform([2, 3, 4], function(result, n) {
result.push(n *= n);
return n % 2 == 0;
}, []);
// => [4, 9]
_.transform({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {
(result[value] || (result[value] = [])).push(key);
}, {});
// => { '1': ['a', 'c'], '2': ['b'] }
_.unset(object, path)
Удаляет свойство по path object.
Примечание: Этот метод изменяет object.
Since
4.0.0
Arguments
-
object(Object): Объект для изменения. -
path(Array|string): Путь к свойству для удаления.
Returns
(boolean): Возвращает true, если свойство удалено, иначе false.
Example
var object = { 'a': [{ 'b': { 'c': 7 } }] };
_.unset(object, 'a[0].b.c');
// => true
console.log(object);
// => { 'a': [{ 'b': {} }] };
_.unset(object, ['a', '0', 'b', 'c']);
// => true
console.log(object);
// => { 'a': [{ 'b': {} }] };
_.update(object, path, updater)
Этот метод похож на _.set, за исключением того, что принимает updater для получения значения для установки. Используйте _.updateWith для настройки создания path. updater вызывается с одним аргументом: (value).
Примечание: Этот метод изменяет object.
Since
4.6.0
Arguments
-
object(Object): Объект для изменения. -
path(Array|string): Путь к устанавливаемому свойству. -
updater(Function): Функция для получения обновленного значения.
Returns
(Object): Возвращает object.
Example
var object = { 'a': [{ 'b': { 'c': 3 } }] };
_.update(object, 'a[0].b.c', function(n) { return n * n; });
console.log(object.a[0].b.c);
// => 9
_.update(object, 'x[0].y.z', function(n) { return n ? n + 1 : 0; });
console.log(object.x[0].y.z);
// => 0
_.updateWith(object, path, updater, [customizer])
Этот метод похож на _.update, за исключением того, что он принимает customizer, который вызывается для создания объектов path. Если customizer возвращает undefined, обработка создания пути осуществляется методом вместо этого. customizer вызывается с тремя аргументами: (nsValue, key, nsObject).
Примечание: Этот метод изменяет object.
Since
4.6.0
Arguments
-
object(Object): Объект для изменения. -
path(Array|string): Путь к устанавливаемому свойству. -
updater(Function): Функция для получения обновленного значения. -
[customizer](Function): Функция для настройки присваиваемых значений.
Returns
(Object): Возвращает object.
Example
var object = {};
_.updateWith(object, '[0][1]', _.constant('a'), Object);
// => { '0': { '1': 'a' } }
_.values(object)
Создает массив собственных перечисляемых значений свойств со строковыми ключами object.
Примечание: Необъектные значения принудительно преобразуются в объекты.
Since
0.1.0
Arguments
-
object(Object): Объект для запроса.
Returns
(Array): Возвращает массив значений свойств.
Example
function Foo() {
this.a = 1;
this.b = 2;
}
Foo.prototype.c = 3;
_.values(new Foo);
// => [1, 2] (iteration order is not guaranteed)
_.values('hi');
// => ['h', 'i']
_.valuesIn(object)
Создает массив собственных и унаследованных перечисляемых значений свойств со строковыми ключами object.
Примечание: Необъектные значения принудительно преобразуются в объекты.
Since
3.0.0
Arguments
-
object(Object): Объект для запроса.
Returns
(Array): Возвращает массив значений свойств.
Example
function Foo() {
this.a = 1;
this.b = 2;
}
Foo.prototype.c = 3;
_.valuesIn(new Foo);
// => [1, 2, 3] (iteration order is not guaranteed)
Методы «Seq»
_(value)
[source](https://github.com/lodash/lodash/blob/4.17.10/lodash.js#L1662)Создаёт объект lodash, который оборачивает value для обеспечения возможности неявных цепочек вызовов методов. Методы, которые работают с массивами, коллекциями и функциями и возвращают их, могут быть объединены в цепочку. Методы, которые возвращают одно значение или примитивное значение, автоматически завершают цепочку и возвращают распакованное значение. В противном случае, значение должно быть распаковано с помощью _#value.
Явные цепочки вызовов, которые должны быть распакованы с помощью _#value, могут быть включены с помощью _.chain.
Выполнение методов в цепочке является ленивым, то есть оно откладывается до тех пор, пока _#value не будет неявно или явно вызван.
Ленивая оценка позволяет нескольким методам поддерживать слияние сокращений. Слияние сокращений — это оптимизация для объединения вызовов итераторов; это позволяет избежать создания промежуточных массивов и может значительно уменьшить количество выполнений итераторов. Участки цепочки вызовов подходят для слияния сокращений, если участок применяется к массиву, а итераторы принимают только один аргумент. Эвристика для определения того, подходит ли участок для слияния сокращений, может измениться.
Поддержка цепочек в пользовательских сборках возможна, если метод _#value включён в сборку напрямую или косвенно.
В дополнение к методам lodash, оборачиваемые объекты имеют методы Array и String.
Методы обертки Array это:concat, join, pop, push, shift, sort, splice, и unshift.
Методы обертки String это:replace и split.
Методы обертки, которые поддерживают слияние сокращений, это:at, compact, drop, dropRight, dropWhile, filter, find, findLast, head, initial, last, map, reject, reverse, slice, tail, take, takeRight, takeRightWhile, takeWhile, и toArray.
Цепочные методы обертки это:after, ary, assign, assignIn, assignInWith, assignWith, at, before, bind, bindAll, bindKey, castArray, chain, chunk, commit, compact, concat, conforms, constant, countBy, create, curry, debounce, defaults, defaultsDeep, defer, delay, difference, differenceBy, differenceWith, drop, dropRight, dropRightWhile, dropWhile, extend, extendWith, fill, filter, flatMap, flatMapDeep, flatMapDepth, flatten, flattenDeep, flattenDepth, flip, flow, flowRight, fromPairs, functions, functionsIn, groupBy, initial, intersection, intersectionBy, intersectionWith, invert, invertBy, invokeMap, iteratee, keyBy, keys, keysIn, map, mapKeys, mapValues, matches, matchesProperty, memoize, merge, mergeWith, method, methodOf, mixin, negate, nthArg, omit, omitBy, once, orderBy, over, overArgs, overEvery, overSome, partial, partialRight, partition, pick, pickBy, plant, property, propertyOf, pull, pullAll, pullAllBy, pullAllWith, pullAt, push, range, rangeRight, rearg, reject, remove, rest, reverse, sampleSize, set, setWith, shuffle, slice, sort, sortBy, splice, spread, tail, take, takeRight, takeRightWhile, takeWhile, tap, throttle, thru, toArray, toPairs, toPairsIn, toPath, toPlainObject, transform, unary, union, unionBy, unionWith, uniq, uniqBy, uniqWith, unset, unshift, unzip, unzipWith, update, updateWith, values, valuesIn, without, wrap, xor, xorBy, xorWith, zip, zipObject, zipObjectDeep, и zipWith.
Методы обертки, которые не являются цепочными по умолчанию:add, attempt, camelCase, capitalize, ceil, clamp, clone, cloneDeep, cloneDeepWith, cloneWith, conformsTo, deburr, defaultTo, divide, each, eachRight, endsWith, eq, escape, escapeRegExp, every, find, findIndex, findKey, findLast, findLastIndex, findLastKey, first, floor, forEach, forEachRight, forIn, forInRight, forOwn, forOwnRight, get, gt, gte, has, hasIn, head, identity, includes, indexOf, inRange, invoke, isArguments, isArray, isArrayBuffer, isArrayLike, isArrayLikeObject, isBoolean, isBuffer, isDate, isElement, isEmpty, isEqual, isEqualWith, isError, isFinite, isFunction, isInteger, isLength, isMap, isMatch, isMatchWith, isNaN, isNative, isNil, isNull, isNumber, isObject, isObjectLike, isPlainObject, isRegExp, isSafeInteger, isSet, isString, isUndefined, isTypedArray, isWeakMap, isWeakSet, join, kebabCase, last, lastIndexOf, lowerCase, lowerFirst, lt, lte, max, maxBy, mean, meanBy, min, minBy, multiply, noConflict, noop, now, nth, pad, padEnd, padStart, parseInt, pop, random, reduce, reduceRight, repeat, result, round, runInContext, sample, shift, size, snakeCase, some, sortedIndex, sortedIndexBy, sortedLastIndex, sortedLastIndexBy, startCase, startsWith, stubArray, stubFalse, stubObject, stubString, stubTrue, subtract, sum, sumBy, template, times, toFinite, toInteger, toJSON, toLength, toLower, toNumber, toSafeInteger, toString, toUpper, trim, trimEnd, trimStart, truncate, unescape, uniqueId, upperCase, upperFirst, value, и words.
Аргументы
-
value(*): Значение для обертывания в экземплярlodash.
Возвращает
(Object): Возвращает новый экземпляр обертки lodash.
Пример
function square(n) {
return n * n;
}
var wrapped = _([1, 2, 3]);
// Returns an unwrapped value.
wrapped.reduce(_.add);
// => 6
// Returns a wrapped value.
var squares = wrapped.map(square);
_.isArray(squares);
// => false
_.isArray(squares.value());
// => true
_.chain(value)
[source](https://github.com/lodash/lodash/blob/4.17.10/lodash.js#L8737)Создаёт экземпляр оболочки lodash , который оборачивает value с включёнными явными последовательностями вызова методов. Результат таких последовательностей должен быть распакован с помощью _#value.
Since
1.3.0
Arguments
-
value(*): Значение для обертывания.
Returns
(Object): Возвращает новый экземпляр оболочки lodash.
Example
var users = [
{ 'user': 'barney', 'age': 36 },
{ 'user': 'fred', 'age': 40 },
{ 'user': 'pebbles', 'age': 1 }
];
var youngest = _
.chain(users)
.sortBy('age')
.map(function(o) {
return o.user + ' is ' + o.age;
})
.head()
.value();
// => 'pebbles is 1'
_.tap(value, interceptor)
[source](https://github.com/lodash/lodash/blob/4.17.10/lodash.js#L8766)Этот метод вызывает interceptor и возвращает value. Перехватчик вызывается с одним аргументом: (value). Цель этого метода — «подключиться» к последовательности вызова метода, чтобы изменить промежуточные результаты.
Since
0.1.0
Arguments
-
value(*): Значение для предоставленияinterceptor. -
interceptor(Function): Функция для вызова.
Returns
(*): Возвращает value.
Example
_([1, 2, 3])
.tap(function(array) {
// Mutate input array.
array.pop();
})
.reverse()
.value();
// => [2, 1]
_.thru(value, interceptor)Этот метод похож на _.tap, за исключением того, что он возвращает результат interceptor. Цель этого метода — «пропустить» значения, заменяя промежуточные результаты в последовательности вызова метода.
[source](https://github.com/lodash/lodash/blob/4.17.10/lodash.js#L8794)_.tap, за исключением того, что он возвращает результат interceptor. Цель этого метода — «пропустить» значения, заменяя промежуточные результаты в последовательности вызова метода.Since
3.0.0
Arguments
-
value(*): Значение для предоставленияinterceptor. -
interceptor(Function): Функция для вызова.
Returns
(*): Возвращает результат interceptor.
Example
_(' abc ')
.chain()
.trim()
.thru(function(value) {
return [value];
})
.value();
// => ['abc']
_.prototype[Symbol.iterator]()
[source](https://github.com/lodash/lodash/blob/4.17.10/lodash.js#L8949)Позволяет оболочке быть итерируемой.
Since
4.0.0
Returns
(Object): Возвращает объект-обёртку.
Example
var wrapped = _([1, 2]); wrapped[Symbol.iterator]() === wrapped; // => true Array.from(wrapped); // => [1, 2]
_.prototype.at([paths])Этот метод является версией оболочки для _.at.
[source](https://github.com/lodash/lodash/blob/4.17.10/lodash.js#L8814)_.at.Since
1.0.0
Arguments
-
[paths](...(string|string[])): Пути к свойствам для выбора.
Returns
(Object): Возвращает новый экземпляр оболочки lodash.
Example
var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };
_(object).at(['a[0].b.c', 'a[1]']).value();
// => [3, 4]
_.prototype.chain()
[source](https://github.com/lodash/lodash/blob/4.17.10/lodash.js#L8865)Создаёт экземпляр оболочки lodash с включёнными явными последовательностями вызова метода.
Since
0.1.0
Returns
(Object): Возвращает новый экземпляр оболочки lodash.
Example
var users = [
{ 'user': 'barney', 'age': 36 },
{ 'user': 'fred', 'age': 40 }
];
// A sequence without explicit chaining.
_(users).head();
// => { 'user': 'barney', 'age': 36 }
// A sequence with explicit chaining.
_(users)
.chain()
.head()
.pick('user')
.value();
// => { 'user': 'barney' }
_.prototype.commit()
[source](https://github.com/lodash/lodash/blob/4.17.10/lodash.js#L8895)Выполняет последовательность цепочки и возвращает обернутый результат.
Since
3.2.0
Returns
(Object): Возвращает новый экземпляр оболочки lodash.
Example
var array = [1, 2]; var wrapped = _(array).push(3); console.log(array); // => [1, 2] wrapped = wrapped.commit(); console.log(array); // => [1, 2, 3] wrapped.last(); // => 3 console.log(array); // => [1, 2, 3]
_.prototype.next()Получает следующее значение для обернутого объекта, следуя протоколу итератора.
[source](https://github.com/lodash/lodash/blob/4.17.10/lodash.js#L8921)Since
4.0.0
Returns
(Object): Возвращает следующее значение итератора.
Example
var wrapped = _([1, 2]);
wrapped.next();
// => { 'done': false, 'value': 1 }
wrapped.next();
// => { 'done': false, 'value': 2 }
wrapped.next();
// => { 'done': true, 'value': undefined }
_.prototype.plant(value)
[source](https://github.com/lodash/lodash/blob/4.17.10/lodash.js#L8977)Создаёт клон последовательности цепочки, устанавливая value в качестве обернутого значения.
Since
3.2.0
Arguments
-
value(*): Значение для установки.
Returns
(Object): Возвращает новый экземпляр оболочки lodash.
Example
function square(n) {
return n * n;
}
var wrapped = _([1, 2]).map(square);
var other = wrapped.plant([3, 4]);
other.value();
// => [9, 16]
wrapped.value();
// => [1, 4]
_.prototype.reverse()Этот метод является версией оболочки для _.reverse.
Примечание: Этот метод изменяет обернутый массив.
[source](https://github.com/lodash/lodash/blob/4.17.10/lodash.js#L9017)_.reverse.Примечание: Этот метод изменяет обернутый массив.
Since
0.1.0
Returns
(Object): Возвращает новый экземпляр оболочки lodash.
Example
var array = [1, 2, 3]; _(array).reverse().value() // => [3, 2, 1] console.log(array); // => [3, 2, 1]
_.prototype.value()
[source](https://github.com/lodash/lodash/blob/4.17.10/lodash.js#L9049)Выполняет последовательность цепочки для получения распакованного значения.
Since
0.1.0
Aliases
_.prototype.toJSON, _.prototype.valueOf
Returns
(*): Возвращает полученное распакованное значение.
Example
_([1, 2, 3]).value(); // => [1, 2, 3]
Методы «Строка»
_.camelCase([string=''])
Преобразует string в camel case.
Since
3.0.0
Arguments
-
[string=''](string): Строка для преобразования.
Returns
(string): Возвращает строку в формате camel case.
Example
_.camelCase('Foo Bar');
// => 'fooBar'
_.camelCase('--foo-bar--');
// => 'fooBar'
_.camelCase('__FOO_BAR__');
// => 'fooBar'
_.capitalize([string=''])
Преобразует первый символ string в верхний регистр, а остальные — в нижний регистр.
Since
3.0.0
Arguments
-
[string=''](string): Строка для преобразования в заглавный регистр.
Returns
(string): Возвращает строку с заглавной буквой.
Example
_.capitalize('FRED');
// => 'Fred'
_.deburr([string=''])
Удаляет диакритические знаки из string, преобразуя буквы Latin-1 Supplement и Latin Extended-A в базовые латинские буквы и удаляя диакритические знаки.
Since
3.0.0
Arguments
-
[string=''](string): Строка, из которой нужно удалить диакритические знаки.
Returns
(string): Возвращает строку без диакритических знаков.
Example
_.deburr('déjà vu');
// => 'deja vu'
_.endsWith([string=''], [target], [position=string.length])
Проверяет, заканчивается ли string заданной целевой строкой.
Since
3.0.0
Arguments
-
[string=''](string): Строка для проверки. -
[target](string): Строка для поиска. -
[position=string.length](number): Позиция, до которой нужно искать.
Returns
(boolean): Возвращает true, если string заканчивается на target, иначе false.
Example
_.endsWith('abc', 'c');
// => true
_.endsWith('abc', 'b');
// => false
_.endsWith('abc', 'b', 2);
// => true
_.escape([string=''])
Преобразует символы "&", "<", ">", '"', и "'" в string в их соответствующие HTML-сущности.
Примечание: Другие символы не экранируются. Для экранирования дополнительных символов используйте стороннюю библиотеку, например, he.
Хотя символ ">" экранируется для симметрии, символы, подобные ">" и "/", не нуждаются в экранировании в HTML и не имеют особого значения, если они не являются частью тега или неквотированного значения атрибута. См. статью Матиаса Байненса (в разделе "semi-related fun fact") для получения более подробной информации.
При работе с HTML всегда следует кавычки в значениях атрибутов, чтобы уменьшить векторы XSS.
Since
0.1.0
Arguments
-
[string=''](string): Строка для экранирования.
Returns
(string): Возвращает экранированную строку.
Example
_.escape('fred, barney, & pebbles');
// => 'fred, barney, & pebbles'
_.escapeRegExp([string=''])
Экранирует специальные символы RegExp "^", "$", "", ".", "*", "+", "?", "(", ")", "[", "]", "{", "}", и "|" в string.
Since
3.0.0
Arguments
-
[string=''](string): Строка для экранирования.
Returns
(string): Возвращает экранированную строку.
Example
_.escapeRegExp('[lodash](https://lodash.com/)');
// => '\[lodash\]\(https://lodash\.com/\)'
_.kebabCase([string=''])
Преобразует string в kebab case.
Since
3.0.0
Arguments
-
[string=''](string): Строка для преобразования.
Returns
(string): Возвращает строку в формате kebab case.
Example
_.kebabCase('Foo Bar');
// => 'foo-bar'
_.kebabCase('fooBar');
// => 'foo-bar'
_.kebabCase('__FOO_BAR__');
// => 'foo-bar'
_.lowerCase([string=''])
Преобразует string, как слова, разделённые пробелами, в нижний регистр.
Since
4.0.0
Arguments
-
[string=''](string): Строка для преобразования.
Returns
(string): Возвращает строку в нижнем регистре.
Example
_.lowerCase('--Foo-Bar--');
// => 'foo bar'
_.lowerCase('fooBar');
// => 'foo bar'
_.lowerCase('__FOO_BAR__');
// => 'foo bar'
_.lowerFirst([string=''])
Преобразует первый символ string в нижний регистр.
Since
4.0.0
Arguments
-
[string=''](string): Строка для преобразования.
Returns
(string): Возвращает преобразованную строку.
Example
_.lowerFirst('Fred');
// => 'fred'
_.lowerFirst('FRED');
// => 'fRED'
_.pad([string=''], [length=0], [chars=' '])
Добавляет string слева и справа, если она короче, чем length. Символы заполнения усекаются, если их нельзя равномерно разделить на length.
Since
3.0.0
Arguments
-
[string=''](string): Строка для заполнения. -
[length=0](number): Длина заполнения. -
[chars=' '](string): Строка, используемая в качестве заполнения.
Returns
(string): Возвращает заполненную строку.
Example
_.pad('abc', 8);
// => ' abc '
_.pad('abc', 8, '_-');
// => '_-abc_-_'
_.pad('abc', 3);
// => 'abc'
_.padEnd([string=''], [length=0], [chars=' '])
Добавляет string справа, если она короче, чем length. Символы заполнения усекаются, если они превышают length.
Since
4.0.0
Arguments
-
[string=''](string): Строка для заполнения. -
[length=0](number): Длина заполнения. -
[chars=' '](string): Строка, используемая в качестве заполнения.
Returns
(string): Возвращает заполненную строку.
Example
_.padEnd('abc', 6);
// => 'abc '
_.padEnd('abc', 6, '_-');
// => 'abc_-_'
_.padEnd('abc', 3);
// => 'abc'
_.padStart([string=''], [length=0], [chars=' '])
Добавляет string слева, если она короче, чем length. Символы заполнения усекаются, если они превышают length.
Since
4.0.0
Arguments
-
[string=''](string): Строка для заполнения. -
[length=0](number): Длина заполнения. -
[chars=' '](string): Строка, используемая в качестве заполнения.
Returns
(string): Возвращает заполненную строку.
Example
_.padStart('abc', 6);
// => ' abc'
_.padStart('abc', 6, '_-');
// => '_-_abc'
_.padStart('abc', 3);
// => 'abc'
_.parseInt(string, [radix=10])
Преобразует string в целое число указанной системы счисления. Если radix является undefined или 0, используется radix из 10, если только value не является шестнадцатеричным, в этом случае используется radix из 16.
Примечание: Этот метод согласуется с реализацией ES5 parseInt.
Since
1.1.0
Arguments
-
string(string): Строка для преобразования. -
[radix=10](number): Основание системы счисления для интерпретацииvalue.
Returns
(number): Возвращает преобразованное целое число.
Example
_.parseInt('08');
// => 8
_.map(['6', '08', '10'], _.parseInt);
// => [6, 8, 10]
_.repeat([string=''], [n=1])
Повторяет заданную строку n раз.
Since
3.0.0
Arguments
-
[string=''](string): Строка для повторения. -
[n=1](number): Количество раз, которое необходимо повторить строку.
Returns
(string): Возвращает повторенную строку.
Example
_.repeat('*', 3);
// => '***'
_.repeat('abc', 2);
// => 'abcabc'
_.repeat('abc', 0);
// => ''
_.replace([string=''], pattern, replacement)
Заменяет совпадения для pattern в string на replacement.
Примечание: Этот метод основан на String#replace.
Since
4.0.0
Arguments
-
[string=''](string): Строка для изменения. -
pattern(RegExp|string): Шаблон для замены. -
replacement(Function|string): Замена совпадения.
Returns
(string): Возвращает измененную строку.
Example
_.replace('Hi Fred', 'Fred', 'Barney');
// => 'Hi Barney'
_.snakeCase([string=''])
Преобразует string в snake case.
Since
3.0.0
Arguments
-
[string=''](string): Строка для преобразования.
Returns
(string): Возвращает строку в формате snake case.
Example
_.snakeCase('Foo Bar');
// => 'foo_bar'
_.snakeCase('fooBar');
// => 'foo_bar'
_.snakeCase('--FOO-BAR--');
// => 'foo_bar'
_.split([string=''], separator, [limit])
Разделяет string по separator.
Примечание: Этот метод основан на String#split.
Since
4.0.0
Arguments
-
[string=''](string): Строка для разделения. -
separator(RegExp|string): Шаблон разделителя для разделения. -
[limit](number): Длина для усечения результатов.
Returns
(Array): Возвращает сегменты строки.
Example
_.split('a-b-c', '-', 2);
// => ['a', 'b']
_.startCase([string=''])
Преобразует string в start case.
Since
3.1.0
Arguments
-
[string=''](string): Строка для преобразования.
Returns
(string): Возвращает строку в формате start case.
Example
_.startCase('--foo-bar--');
// => 'Foo Bar'
_.startCase('fooBar');
// => 'Foo Bar'
_.startCase('__FOO_BAR__');
// => 'FOO BAR'
_.startsWith([string=''], [target], [position=0])
Проверяет, начинается ли string с заданной целевой строки.
Since
3.0.0
Arguments
-
[string=''](string): Строка для проверки. -
[target](string): Строка для поиска. -
[position=0](number): Позиция, с которой начинать поиск.
Returns
(boolean): Возвращает true, если string начинается с target, иначе false.
Example
_.startsWith('abc', 'a');
// => true
_.startsWith('abc', 'b');
// => false
_.startsWith('abc', 'b', 1);
// => true
_.template([string=''], [options={}])
Создает скомпилированную функцию шаблона, которая может интерполировать свойства данных в разделителях "interpolate", экранировать HTML-интерполированные свойства данных в разделителях "escape" и выполнять JavaScript в разделителях "evaluate". Свойства данных могут быть доступны как свободные переменные в шаблоне. Если задан объект параметров, он имеет приоритет над значениями _.templateSettings.
Примечание: В отладочной сборке _.template использует sourceURLs для упрощения отладки.
Для получения дополнительной информации о предварительной компиляции шаблонов см. документацию по пользовательским сборкам lodash.
Для получения дополнительной информации о песочницах расширений Chrome см. документацию по расширениям Chrome.
Since
0.1.0
Arguments
-
[string=''](string): Строка шаблона. -
[options={}](Object): Объект параметров. -
[options.escape=_.templateSettings.escape](RegExp): Разделитель HTML "escape". -
[options.evaluate=_.templateSettings.evaluate](RegExp): Разделитель "evaluate". -
[options.imports=_.templateSettings.imports](Object): Объект для импорта в шаблон как свободные переменные. -
[options.interpolate=_.templateSettings.interpolate](RegExp): Разделитель "interpolate". -
[options.sourceURL='lodash.templateSources[n]'](string): sourceURL скомпилированной функции шаблона. -
[options.variable='obj'](string): Имя переменной объекта данных.
Returns
(Function): Возвращает скомпилированную функцию шаблона.
Example
// Use the "interpolate" delimiter to create a compiled template.
var compiled = _.template('hello <%= user %>!');
compiled({ 'user': 'fred' });
// => 'hello fred!'
// Use the HTML "escape" delimiter to escape data property values.
var compiled = _.template('<b><%- value %></b>');
compiled({ 'value': '<script>' });
// => '<b>&lt;script&gt;</b>'
// Use the "evaluate" delimiter to execute JavaScript and generate HTML.
var compiled = _.template('<% _.forEach(users, function(user) { %><li><%- user %></li><% }); %>');
compiled({ 'users': ['fred', 'barney'] });
// => '<li>fred</li><li>barney</li>'
// Use the internal `print` function in "evaluate" delimiters.
var compiled = _.template('<% print("hello " + user); %>!');
compiled({ 'user': 'barney' });
// => 'hello barney!'
// Use the ES template literal delimiter as an "interpolate" delimiter.
// Disable support by replacing the "interpolate" delimiter.
var compiled = _.template('hello ${ user }!');
compiled({ 'user': 'pebbles' });
// => 'hello pebbles!'
// Use backslashes to treat delimiters as plain text.
var compiled = _.template('<%= "\\<%- value %\\>" %>');
compiled({ 'value': 'ignored' });
// => '<%- value %>'
// Use the `imports` option to import `jQuery` as `jq`.
var text = '<% jq.each(users, function(user) { %><li><%- user %></li><% }); %>';
var compiled = _.template(text, { 'imports': { 'jq': jQuery } });
compiled({ 'users': ['fred', 'barney'] });
// => '<li>fred</li><li>barney</li>'
// Use the `sourceURL` option to specify a custom sourceURL for the template.
var compiled = _.template('hello <%= user %>!', { 'sourceURL': '/basic/greeting.jst' });
compiled(data);
// => Find the source of "greeting.jst" under the Sources tab or Resources panel of the web inspector.
// Use the `variable` option to ensure a with-statement isn't used in the compiled template.
var compiled = _.template('hi <%= data.user %>!', { 'variable': 'data' });
compiled.source;
// => function(data) {
// var __t, __p = '';
// __p += 'hi ' + ((__t = ( data.user )) == null ? '' : __t) + '!';
// return __p;
// }
// Use custom template delimiters.
_.templateSettings.interpolate = /{{([\s\S]+?)}}/g;
var compiled = _.template('hello {{ user }}!');
compiled({ 'user': 'mustache' });
// => 'hello mustache!'
// Use the `source` property to inline compiled templates for meaningful
// line numbers in error messages and stack traces.
fs.writeFileSync(path.join(process.cwd(), 'jst.js'), '\
var JST = {\
"main": ' + _.template(mainText).source + '\
};\
');
_.toLower([string=''])
Преобразует string, целиком, в нижний регистр, как и String#toLowerCase.
Since
4.0.0
Arguments
-
[string=''](string): Строка для преобразования.
Returns
(string): Возвращает строку в нижнем регистре.
Example
_.toLower('--Foo-Bar--');
// => '--foo-bar--'
_.toLower('fooBar');
// => 'foobar'
_.toLower('__FOO_BAR__');
// => '__foo_bar__'
_.toUpper([string=''])
Преобразует string, целиком, в верхний регистр, как и String#toUpperCase.
Since
4.0.0
Arguments
-
[string=''](string): Строка для преобразования.
Returns
(string): Возвращает строку в верхнем регистре.
Example
_.toUpper('--foo-bar--');
// => '--FOO-BAR--'
_.toUpper('fooBar');
// => 'FOOBAR'
_.toUpper('__foo_bar__');
// => '__FOO_BAR__'
_.trim([string=''], [chars=whitespace])
Удаляет ведущие и завершающие пробелы или указанные символы из string.
Since
3.0.0
Arguments
-
[string=''](string): Строка для обрезки. -
[chars=whitespace](string): Символы для обрезки.
Returns
(string): Возвращает обрезанную строку.
Example
_.trim(' abc ');
// => 'abc'
_.trim('-_-abc-_-', '_-');
// => 'abc'
_.map([' foo ', ' bar '], _.trim);
// => ['foo', 'bar']
_.trimEnd([string=''], [chars=whitespace])
Удаляет завершающие пробелы или указанные символы из string.
Since
4.0.0
Arguments
-
[string=''](string): Строка для обрезки. -
[chars=whitespace](string): Символы для обрезки.
Returns
(string): Возвращает обрезанную строку.
Example
_.trimEnd(' abc ');
// => ' abc'
_.trimEnd('-_-abc-_-', '_-');
// => '-_-abc'
_.trimStart([string=''], [chars=whitespace])
Удаляет ведущие пробелы или указанные символы из string.
Since
4.0.0
Arguments
-
[string=''](string): Строка для обрезки. -
[chars=whitespace](string): Символы для обрезки.
Returns
(string): Возвращает обрезанную строку.
Example
_.trimStart(' abc ');
// => 'abc '
_.trimStart('-_-abc-_-', '_-');
// => 'abc-_-'
_.truncate([string=''], [options={}])
Усекает string, если она длиннее заданной максимальной длины строки. Последние символы усеченной строки заменяются строкой пропуска, которая по умолчанию равна "...".
Since
4.0.0
Arguments
-
[string=''](string): Строка для усечения. -
[options={}](Object): Объект параметров. -
[options.length=30](number): Максимальная длина строки. -
[options.omission='...'](string): Строка для указания того, что текст опущен. -
[options.separator](RegExp|string): Шаблон разделителя для усечения.
Returns
(string): Возвращает усеченную строку.
Example
_.truncate('hi-diddly-ho there, neighborino');
// => 'hi-diddly-ho there, neighbo...'
_.truncate('hi-diddly-ho there, neighborino', {
'length': 24,
'separator': ' '
});
// => 'hi-diddly-ho there,...'
_.truncate('hi-diddly-ho there, neighborino', {
'length': 24,
'separator': /,? +/
});
// => 'hi-diddly-ho there...'
_.truncate('hi-diddly-ho there, neighborino', {
'omission': ' [...]'
});
// => 'hi-diddly-ho there, neig [...]'
_.unescape([string=''])
Обратное _.escape; этот метод преобразует HTML-сущности &amp;, &lt;, &gt;, &quot;, и &#39; в string в их соответствующие символы.
Примечание: Другие HTML-сущности не раскодируются. Чтобы раскодировать дополнительные HTML-сущности, используйте стороннюю библиотеку, например he.
Since
0.6.0
Arguments
-
[string=''](string): Строка для раскодирования.
Returns
(string): Возвращает раскодированную строку.
Example
_.unescape('fred, barney, & pebbles');
// => 'fred, barney, & pebbles'
_.upperCase([string=''])
Преобразует string, как слова, разделенные пробелами, в верхний регистр.
Since
4.0.0
Arguments
-
[string=''](string): Строка для преобразования.
Returns
(string): Возвращает строку в верхнем регистре.
Example
_.upperCase('--foo-bar');
// => 'FOO BAR'
_.upperCase('fooBar');
// => 'FOO BAR'
_.upperCase('__foo_bar__');
// => 'FOO BAR'
_.upperFirst([string=''])
Преобразует первый символ string в верхний регистр.
Since
4.0.0
Arguments
-
[string=''](string): Строка для преобразования.
Returns
(string): Возвращает преобразованную строку.
Example
_.upperFirst('fred');
// => 'Fred'
_.upperFirst('FRED');
// => 'FRED'
_.words([string=''], [pattern])
Разделяет string на массив его слов.
Since
3.0.0
Arguments
-
[string=''](string): Строка для проверки. -
[pattern](RegExp|string): Шаблон для сопоставления слов.
Returns
(Array): Возвращает слова string.
Example
_.words('fred, barney, & pebbles');
// => ['fred', 'barney', 'pebbles']
_.words('fred, barney, & pebbles', /[^, ]+/g);
// => ['fred', 'barney', '&', 'pebbles']
Методы «Util»
_.attempt(func, [args])
Пытается вызвать func, возвращая либо результат, либо перехваченный объект ошибки. Все дополнительные аргументы предоставляются func при его вызове.
Since
3.0.0
Arguments
-
func(Function): Функция для попытки. -
[args](...*): Аргументы для вызоваfuncс.
Returns
(*): Возвращает func результат или объект ошибки.
Example
// Avoid throwing errors for invalid selectors.
var elements = _.attempt(function(selector) {
return document.querySelectorAll(selector);
}, '>_>');
if (_.isError(elements)) {
elements = [];
}
_.bindAll(object, methodNames)
Привязывает методы объекта к самому объекту, перезаписывая существующий метод.
Примечание: Этот метод не устанавливает свойство «length» привязанных функций.
Since
0.1.0
Arguments
-
object(Object): Объект для привязки и присваивания привязанных методов. -
methodNames(...(string|string[])): Имена методов объекта для привязки.
Returns
(Object): Возвращает object.
Example
var view = {
'label': 'docs',
'click': function() {
console.log('clicked ' + this.label);
}
};
_.bindAll(view, ['click']);
jQuery(element).on('click', view.click);
// => Logs 'clicked docs' when clicked.
_.cond(pairs)
Создает функцию, которая итерирует по pairs и вызывает соответствующую функцию первого предиката, который возвращает истинное значение. Пары предикат-функция вызываются с привязкой this и аргументами созданной функции.
Since
4.0.0
Arguments
-
pairs(Array): Пары предикат-функция.
Returns
(Function): Возвращает новую составную функцию.
Example
var func = _.cond([
[_.matches({ 'a': 1 }), _.constant('matches A')],
[_.conforms({ 'b': _.isNumber }), _.constant('matches B')],
[_.stubTrue, _.constant('no match')]
]);
func({ 'a': 1, 'b': 2 });
// => 'matches A'
func({ 'a': 0, 'b': 1 });
// => 'matches B'
func({ 'a': '1', 'b': '2' });
// => 'no match'
_.conforms(source)
Создает функцию, которая вызывает свойства-предикаты source с соответствующими значениями свойств данного объекта, возвращая true, если все предикаты возвращают истинное значение, иначе false.
Примечание: Созданная функция эквивалентна _.conformsTo с частично примененным source.
Since
4.0.0
Arguments
-
source(Object): Объект предикатных свойств для соответствия.
Returns
(Function): Возвращает новую функцию спецификации.
Example
var objects = [
{ 'a': 2, 'b': 1 },
{ 'a': 1, 'b': 2 }
];
_.filter(objects, _.conforms({ 'b': function(n) { return n > 1; } }));
// => [{ 'a': 1, 'b': 2 }]
_.constant(value)
Создает функцию, которая возвращает value.
Since
2.4.0
Arguments
-
value(*): Значение для возврата из новой функции.
Returns
(Function): Возвращает новую константную функцию.
Example
var objects = _.times(2, _.constant({ 'a': 1 }));
console.log(objects);
// => [{ 'a': 1 }, { 'a': 1 }]
console.log(objects[0] === objects[1]);
// => true
_.defaultTo(value, defaultValue)
Проверяет value, чтобы определить, следует ли возвращать значение по умолчанию вместо него. defaultValue возвращается, если value является NaN, null, или undefined.
Since
4.14.0
Arguments
-
value(*): Значение для проверки. -
defaultValue(*): Значение по умолчанию.
Returns
(*): Возвращает решенное значение.
Example
_.defaultTo(1, 10); // => 1 _.defaultTo(undefined, 10); // => 10
_.flow([funcs])
Создает функцию, которая возвращает результат вызова заданных функций с привязкой this созданной функции, где каждый последующий вызов получает возвращаемое значение предыдущего.
Since
3.0.0
Arguments
-
[funcs](...(Function|Function[])): Функции для вызова.
Returns
(Function): Возвращает новую составную функцию.
Example
function square(n) {
return n * n;
}
var addSquare = _.flow([_.add, square]);
addSquare(1, 2);
// => 9
_.flowRight([funcs])
Этот метод похож на _.flow, за исключением того, что он создает функцию, которая вызывает заданные функции справа налево.
Since
3.0.0
Arguments
-
[funcs](...(Function|Function[])): Функции для вызова.
Returns
(Функция): Возвращает новую составную функцию.
Пример
function square(n) {
return n * n;
}
var addSquare = _.flowRight([square, _.add]);
addSquare(1, 2);
// => 9
_.identity(value)
Этот метод возвращает первый полученный аргумент.
С версии
0.1.0
Аргументы
-
value(*): Любое значение.
Возвращает
(*): Возвращает value.
Пример
var object = { 'a': 1 };
console.log(_.identity(object) === object);
// => true
_.iteratee([func=_.identity])
Создает функцию, которая вызывает func с аргументами созданной функции. Если func является именем свойства, созданная функция возвращает значение свойства для данного элемента. Если func является массивом или объектом, созданная функция возвращает true для элементов, содержащих эквивалентные исходные свойства, в противном случае она возвращает false.
С версии
4.0.0
Аргументы
-
[func=_.identity](*): Значение для преобразования в обратный вызов.
Возвращает
(Функция): Возвращает обратный вызов.
Пример
var users = [
{ 'user': 'barney', 'age': 36, 'active': true },
{ 'user': 'fred', 'age': 40, 'active': false }
];
// The `_.matches` iteratee shorthand.
_.filter(users, _.iteratee({ 'user': 'barney', 'active': true }));
// => [{ 'user': 'barney', 'age': 36, 'active': true }]
// The `_.matchesProperty` iteratee shorthand.
_.filter(users, _.iteratee(['user', 'fred']));
// => [{ 'user': 'fred', 'age': 40 }]
// The `_.property` iteratee shorthand.
_.map(users, _.iteratee('user'));
// => ['barney', 'fred']
// Create custom iteratee shorthands.
_.iteratee = _.wrap(_.iteratee, function(iteratee, func) {
return !_.isRegExp(func) ? iteratee(func) : function(string) {
return func.test(string);
};
});
_.filter(['abc', 'def'], /ef/);
// => ['def']
_.matches(source)
Создает функцию, которая выполняет частичное глубокое сравнение между заданным объектом и source, возвращая true, если заданный объект имеет эквивалентные значения свойств, иначе false.
Примечание: Созданная функция эквивалентна _.isMatch с частично примененным source.
Частичные сравнения будут сопоставлять значения пустого массива и пустого объекта source с любым значением массива или объекта соответственно. См. _.isEqual для списка поддерживаемых сравнений значений.
С версии
3.0.0
Аргументы
-
source(Объект): Объект значений свойств для сопоставления.
Возвращает
(Функция): Возвращает новую функцию спецификации.
Пример
var objects = [
{ 'a': 1, 'b': 2, 'c': 3 },
{ 'a': 4, 'b': 5, 'c': 6 }
];
_.filter(objects, _.matches({ 'a': 4, 'c': 6 }));
// => [{ 'a': 4, 'b': 5, 'c': 6 }]
_.matchesProperty(path, srcValue)
Создает функцию, которая выполняет частичное глубокое сравнение значения по path заданного объекта с srcValue, возвращая true, если значение объекта эквивалентно, иначе false.
Примечание: Частичные сравнения будут сопоставлять значения пустого массива и пустого объекта srcValue с любым значением массива или объекта соответственно. См. _.isEqual для списка поддерживаемых сравнений значений.
С версии
3.2.0
Аргументы
-
path(Массив|строка): Путь к свойству для получения. -
srcValue(*): Значение для сопоставления.
Возвращает
(Функция): Возвращает новую функцию спецификации.
Пример
var objects = [
{ 'a': 1, 'b': 2, 'c': 3 },
{ 'a': 4, 'b': 5, 'c': 6 }
];
_.find(objects, _.matchesProperty('a', 4));
// => { 'a': 4, 'b': 5, 'c': 6 }
_.method(path, [args])
Создает функцию, которая вызывает метод по path заданного объекта. Любые дополнительные аргументы предоставляются вызываемому методу.
С версии
3.7.0
Аргументы
-
path(Массив|строка): Путь к методу для вызова. -
[args](...*): Аргументы для вызова метода.
Возвращает
(Функция): Возвращает новую функцию вызова.
Пример
var objects = [
{ 'a': { 'b': _.constant(2) } },
{ 'a': { 'b': _.constant(1) } }
];
_.map(objects, _.method('a.b'));
// => [2, 1]
_.map(objects, _.method(['a', 'b']));
// => [2, 1]
_.methodOf(object, [args])
Противоположность _.method; этот метод создает функцию, которая вызывает метод по заданному пути object. Любые дополнительные аргументы предоставляются вызываемому методу.
С версии
3.7.0
Аргументы
-
object(Объект): Объект для запроса. -
[args](...*): Аргументы для вызова метода.
Возвращает
(Функция): Возвращает новую функцию вызова.
Пример
var array = _.times(3, _.constant),
object = { 'a': array, 'b': array, 'c': array };
_.map(['a[2]', 'c[0]'], _.methodOf(object));
// => [2, 0]
_.map([['a', '2'], ['c', '0']], _.methodOf(object));
// => [2, 0]
_.mixin([object=lodash], source, [options={}])
Добавляет все собственные перечисляемые строковые функции свойств объекта источника к целевому объекту. Если object является функцией, то методы также добавляются к её прототипу.
Примечание: Используйте _.runInContext для создания первозданной функции lodash во избежание конфликтов, вызванных изменением оригинала.
С версии
0.1.0
Аргументы
-
[object=lodash](Функция|Объект): Целевой объект. -
source(Объект): Объект функций для добавления. -
[options={}](Объект): Объект параметров. -
[options.chain=true](булево): Укажите, являются ли миксины цепочными.
Возвращает
(*): Возвращает object.
Пример
function vowels(string) {
return _.filter(string, function(v) {
return /[aeiou]/i.test(v);
});
}
_.mixin({ 'vowels': vowels });
_.vowels('fred');
// => ['e']
_('fred').vowels().value();
// => ['e']
_.mixin({ 'vowels': vowels }, { 'chain': false });
_('fred').vowels();
// => ['e']
_.noConflict()
Возвращает переменную _ к её предыдущему значению и возвращает ссылку на функцию lodash.
С версии
0.1.0
Возвращает
(Функция): Возвращает функцию lodash.
Пример
var lodash = _.noConflict();
_.noop()
Этот метод возвращает undefined.
С версии
2.3.0
Пример
_.times(2, _.noop); // => [undefined, undefined]
_.nthArg([n=0])
Создает функцию, которая получает аргумент по индексу n. Если n отрицателен, возвращается n-й аргумент с конца.
С версии
4.0.0
Аргументы
-
[n=0](число): Индекс возвращаемого аргумента.
Возвращает
(Функция): Возвращает новую функцию сквозного прохода.
Пример
var func = _.nthArg(1);
func('a', 'b', 'c', 'd');
// => 'b'
var func = _.nthArg(-2);
func('a', 'b', 'c', 'd');
// => 'c'
_.over([iteratees=[_.identity]])
Создает функцию, которая вызывает iteratees с полученными аргументами и возвращает их результаты.
С версии
4.0.0
Аргументы
-
[iteratees=[_.identity]](...(Функция|Функция[])): Итерируемые функции для вызова.
Возвращает
(Функция): Возвращает новую функцию.
Пример
var func = _.over([Math.max, Math.min]); func(1, 2, 3, 4); // => [4, 1]
_.overEvery([predicates=[_.identity]])
Создает функцию, которая проверяет, являются ли все predicates истинными при вызове с полученными аргументами.
С версии
4.0.0
Аргументы
-
[predicates=[_.identity]](...(Функция|Функция[])): Предикаты для проверки.
Возвращает
(Функция): Возвращает новую функцию.
Пример
var func = _.overEvery([Boolean, isFinite]);
func('1');
// => true
func(null);
// => false
func(NaN);
// => false
_.overSome([predicates=[_.identity]])
Создает функцию, которая проверяет, является ли хотя бы один из predicates истинным при вызове с полученными аргументами.
С версии
4.0.0
Аргументы
-
[predicates=[_.identity]](...(Функция|Функция[])): Предикаты для проверки.
Возвращает
(Функция): Возвращает новую функцию.
Пример
var func = _.overSome([Boolean, isFinite]);
func('1');
// => true
func(null);
// => true
func(NaN);
// => false
_.property(path)
Создает функцию, которая возвращает значение по path заданного объекта.
С версии
2.4.0
Аргументы
-
path(Массив|строка): Путь к свойству для получения.
Возвращает
(Функция): Возвращает новую функцию доступа.
Пример
var objects = [
{ 'a': { 'b': 2 } },
{ 'a': { 'b': 1 } }
];
_.map(objects, _.property('a.b'));
// => [2, 1]
_.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');
// => [1, 2]
_.propertyOf(object)
Противоположность _.property; этот метод создает функцию, которая возвращает значение по заданному пути object.
С версии
3.0.0
Аргументы
-
object(Объект): Объект для запроса.
Возвращает
(Функция): Возвращает новую функцию доступа.
Пример
var array = [0, 1, 2],
object = { 'a': array, 'b': array, 'c': array };
_.map(['a[2]', 'c[0]'], _.propertyOf(object));
// => [2, 0]
_.map([['a', '2'], ['c', '0']], _.propertyOf(object));
// => [2, 0]
_.range([start=0], end, [step=1])
Создаёт массив чисел (положительных и/или отрицательных), начиная с start до, но не включая, end. Шаг -1 используется, если указан отрицательный start без end или step. Если end не указан, он устанавливается в start с start затем устанавливается в 0.
Примечание: JavaScript следует стандарту IEEE-754 для вычисления значений с плавающей точкой, что может привести к неожиданным результатам.
Since
0.1.0
Arguments
-
[start=0](number): Начало диапазона. -
end(number): Конец диапазона. -
[step=1](number): Значение для увеличения или уменьшения.
Returns
(Array): Возвращает диапазон чисел.
Example
_.range(4); // => [0, 1, 2, 3] _.range(-4); // => [0, -1, -2, -3] _.range(1, 5); // => [1, 2, 3, 4] _.range(0, 20, 5); // => [0, 5, 10, 15] _.range(0, -4, -1); // => [0, -1, -2, -3] _.range(1, 4, 0); // => [1, 1, 1] _.range(0); // => []
_.rangeRight([start=0], end, [step=1])
Этот метод похож на _.range, за исключением того, что он заполняет значения в обратном порядке.
Since
4.0.0
Arguments
-
[start=0](number): Начало диапазона. -
end(number): Конец диапазона. -
[step=1](number): Значение для увеличения или уменьшения.
Returns
(Array): Возвращает диапазон чисел.
Example
_.rangeRight(4); // => [3, 2, 1, 0] _.rangeRight(-4); // => [-3, -2, -1, 0] _.rangeRight(1, 5); // => [4, 3, 2, 1] _.rangeRight(0, 20, 5); // => [15, 10, 5, 0] _.rangeRight(0, -4, -1); // => [-3, -2, -1, 0] _.rangeRight(1, 4, 0); // => [1, 1, 1] _.rangeRight(0); // => []
_.runInContext([context=root])
Создаёт новую первозданную функцию lodash с использованием объекта context.
Since
1.1.0
Arguments
-
[context=root](Object): Объект контекста.
Returns
(Function): Возвращает новую функцию lodash.
Example
_.mixin({ 'foo': _.constant('foo') });
var lodash = _.runInContext();
lodash.mixin({ 'bar': lodash.constant('bar') });
_.isFunction(_.foo);
// => true
_.isFunction(_.bar);
// => false
lodash.isFunction(lodash.foo);
// => false
lodash.isFunction(lodash.bar);
// => true
// Create a suped-up `defer` in Node.js.
var defer = _.runInContext({ 'setTimeout': setImmediate }).defer;
_.stubArray()
Этот метод возвращает новый пустой массив.
Since
4.13.0
Returns
(Array): Возвращает новый пустой массив.
Example
var arrays = _.times(2, _.stubArray); console.log(arrays); // => [[], []] console.log(arrays[0] === arrays[1]); // => false
_.stubFalse()
Этот метод возвращает false.
Since
4.13.0
Returns
(boolean): Возвращает false.
Example
_.times(2, _.stubFalse); // => [false, false]
_.stubObject()
Этот метод возвращает новый пустой объект.
Since
4.13.0
Returns
(Object): Возвращает новый пустой объект.
Example
var objects = _.times(2, _.stubObject);
console.log(objects);
// => [{}, {}]
console.log(objects[0] === objects[1]);
// => false
_.stubString()
Этот метод возвращает пустую строку.
Since
4.13.0
Returns
(string): Возвращает пустую строку.
Example
_.times(2, _.stubString); // => ['', '']
_.stubTrue()
Этот метод возвращает true.
Since
4.13.0
Returns
(boolean): Возвращает true.
Example
_.times(2, _.stubTrue); // => [true, true]
_.times(n, [iteratee=_.identity])
Вызывает итератор n раз, возвращая массив результатов каждого вызова. Итератор вызывается с одним аргументом; (index).
Since
0.1.0
Arguments
-
n(number): Количество раз, которое нужно вызватьiteratee. -
[iteratee=_.identity](Function): Функция, вызываемая на каждой итерации.
Returns
(Array): Возвращает массив результатов.
Example
_.times(3, String); // => ['0', '1', '2'] _.times(4, _.constant(0)); // => [0, 0, 0, 0]
_.toPath(value)
Преобразует value в массив путей к свойствам.
Since
4.0.0
Arguments
-
value(*): Значение для преобразования.
Returns
(Array): Возвращает новый массив путей к свойствам.
Example
_.toPath('a.b.c');
// => ['a', 'b', 'c']
_.toPath('a[0].b.c');
// => ['a', '0', 'b', 'c']
_.uniqueId([prefix=''])
Генерирует уникальный ID. Если указан prefix, ID добавляется к нему.
Since
0.1.0
Arguments
-
[prefix=''](string): Значение для префикса ID.
Returns
(string): Возвращает уникальный ID.
Example
_.uniqueId('contact_');
// => 'contact_104'
_.uniqueId();
// => '105'
Свойства
_.VERSION
[source](https://github.com/lodash/lodash/blob/4.17.10/lodash.js#L16855)(string): Семантический номер версии.
_.templateSettings
(Object): По умолчанию, разделители шаблонов, используемые lodash, похожи на те, что в встроенном Ruby (ERB), а также на строковые шаблоны ES2015. Измените следующие параметры шаблона, чтобы использовать альтернативные разделители.
_.templateSettings.escape
[source](https://github.com/lodash/lodash/blob/4.17.10/lodash.js#L1739)(RegExp): Используется для обнаружения значений свойства data, которые должны быть экранированы от HTML.
_.templateSettings.evaluate
[source](https://github.com/lodash/lodash/blob/4.17.10/lodash.js#L1747)(RegExp): Используется для обнаружения кода, который необходимо вычислить.
_.templateSettings.imports
[source](https://github.com/lodash/lodash/blob/4.17.10/lodash.js#L1771)(Object): Используется для импорта переменных в скомпилированный шаблон.
_.templateSettings.interpolate
[source](https://github.com/lodash/lodash/blob/4.17.10/lodash.js#L1755)(RegExp): Используется для обнаружения значений свойства data, которые необходимо вставить.
_.templateSettings.variable
[source](https://github.com/lodash/lodash/blob/4.17.10/lodash.js#L1763)(string): Используется для ссылки на объект данных в тексте шаблона.
Методы
_.templateSettings.imports._
[source](https://github.com/lodash/lodash/blob/4.17.10/lodash.js#L1779)Ссылка на функцию lodash.
© JS Foundation and other contributors
Licensed under the MIT License.
https://lodash.com/docs/4.17.10