Spec-Zone.ru › lodash 4

lodash

Методы «массива»

_.chunk(array, [size=1])
source npm package

Создаёт массив элементов, разделённых на группы длиной size. Если array не может быть чётко разделен, последний фрагмент будет содержать оставшиеся элементы.

Since

3.0.0

Arguments

  1. array (Array): Массив для обработки.
  2. [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)
source npm package

Создаёт массив со всеми ложными значениями, удалёнными. Значения false, null, 0, "", undefined, и NaN являются ложными.

Since

0.1.0

Arguments

  1. array (Array): Массив для уплотнения.

Returns

(Array): Возвращает новый массив отфильтрованных значений.

Example

_.compact([0, 1, false, 2, '', 3]);
// => [1, 2, 3]

_.concat(array, [values])
source npm package

Создаёт новый массив, конкатенируя array с любыми дополнительными массивами и/или значениями.

Since

4.0.0

Arguments

  1. array (Array): Массив для конкатенации.
  2. [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])
source npm package

Создаёт массив значений array, не включённых в другие заданные массивы, используя SameValueZero для сравнения на равенство. Порядок и ссылки на результирующие значения определяются первым массивом.

Примечание: В отличие от _.pullAll, этот метод возвращает новый массив.

Since

0.1.0

Arguments

  1. array (Array): Массив для проверки.
  2. [values] (...Array): Значения для исключения.

Returns

(Array): Возвращает новый массив отфильтрованных значений.

Example

_.difference([2, 1], [2, 3]);
// => [1]

_.differenceBy(array, [values], [iteratee=_.identity])
source npm package

Этот метод похож на _.difference, за исключением того, что он принимает iteratee, который вызывается для каждого элемента array и values для генерации критерия, по которому они сравниваются. Порядок и ссылки на результирующие значения определяются первым массивом. Итератор вызывается с одним аргументом:
(value).

Примечание: В отличие от _.pullAllBy, этот метод возвращает новый массив.

Since

4.0.0

Arguments

  1. array (Array): Массив для проверки.
  2. [values] (...Array): Значения для исключения.
  3. [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])
source npm package

Этот метод похож на _.difference, за исключением того, что он принимает comparator, который вызывается для сравнения элементов array с values. Порядок и ссылки на результирующие значения определяются первым массивом. Компаратор вызывается с двумя аргументами: (arrVal, othVal).

Примечание: В отличие от _.pullAllWith, этот метод возвращает новый массив.

Since

4.0.0

Arguments

  1. array (Array): Массив для проверки.
  2. [values] (...Array): Значения для исключения.
  3. [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])
source npm package

Создаёт срез array с n элементами, удалёнными с начала.

Since

0.5.0

Arguments

  1. array (Array): Массив для запроса.
  2. [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])
source npm package

Создаёт срез array с n элементами, удалёнными с конца.

Since

3.0.0

Arguments

  1. array (Array): Массив для запроса.
  2. [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])
source npm package

Создаёт срез array, исключая элементы, удалённые с конца. Элементы удаляются до тех пор, пока predicate не вернёт ложное значение. Предикат вызывается с тремя аргументами: (value, index, array).

Since

3.0.0

Arguments

  1. array (Array): Массив для запроса.
  2. [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])
source npm package

Создаёт срез array, исключая элементы, удалённые с начала. Элементы удаляются до тех пор, пока predicate не вернёт ложное значение. Предикат вызывается с тремя аргументами: (value, index, array).

Since

3.0.0

Arguments

  1. array (Array): Массив для запроса.
  2. [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])
source npm package

Заполняет элементы array значением value с start до, но не включая, end.

Примечание: Этот метод изменяет array.

Since

3.2.0

Arguments

  1. array (Array): Массив для заполнения.
  2. value (*): Значение для заполнения array.
  3. [start=0] (number): Начальная позиция.
  4. [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])
source npm package

Этот метод похож на _.find, за исключением того, что он возвращает индекс первого элемента, для которого predicate возвращает истинное значение, вместо самого элемента.

Since

1.1.0

Arguments

  1. array (Array): Массив для проверки.
  2. [predicate=_.identity] (Function): Функция, вызываемая на каждой итерации.
  3. [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])
source npm package

Этот метод похож на _.findIndex, за исключением того, что он итерирует по элементам collection справа налево.

Since

2.0.0

Arguments

  1. array (Array): Массив для проверки.
  2. [predicate=_.identity] (Function): Функция, вызываемая на каждой итерации.
  3. [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)
source npm package

Выравнивает array на один уровень глубины.

Since

0.1.0

Arguments

  1. array (Array): Массив для сглаживания.

Returns

(Array): Возвращает новый сглаженный массив.

Example

_.flatten([1, [2, [3, [4]], 5]]);
// => [1, 2, [3, [4]], 5]

_.flattenDeep(array)
source npm package

Рекурсивно сглаживает array.

Since

3.0.0

Arguments

  1. array (Array): Массив для сглаживания.

Returns

(Array): Возвращает новый сглаженный массив.

Example

_.flattenDeep([1, [2, [3, [4]], 5]]);
// => [1, 2, 3, 4, 5]

_.flattenDepth(array, [depth=1])
source npm package

Рекурсивно сглаживает array до depth раз.

Since

4.4.0

Arguments

  1. array (Array): Массив для сглаживания.
  2. [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)
source npm package

Обратное _.toPairs; этот метод возвращает объект, составленный из пар ключ-значение pairs.

Since

4.0.0

Arguments

  1. pairs (Array): Пары ключ-значение.

Returns

(Object): Возвращает новый объект.

Example

_.fromPairs([['a', 1], ['b', 2]]);
// => { 'a': 1, 'b': 2 }

_.head(array)
source npm package

Возвращает первый элемент array.

Since

0.1.0

Aliases

_.first

Arguments

  1. array (Array): Массив для запроса.

Returns

(*): Возвращает первый элемент array.

Example

_.head([1, 2, 3]);
// => 1
 
_.head([]);
// => undefined

_.indexOf(array, value, [fromIndex=0])
source npm package

Возвращает индекс, по которому найдено первое вхождение value в array с использованием SameValueZero для сравнения на равенство. Если fromIndex отрицательное, оно используется как смещение от конца array.

Since

0.1.0

Arguments

  1. array (Array): Массив для проверки.
  2. value (*): Значение для поиска.
  3. [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)
source npm package

Возвращает все элементы, кроме последнего, из array.

Since

0.1.0

Arguments

  1. array (Array): Массив для запроса.

Returns

(Array): Возвращает срез array.

Example

_.initial([1, 2, 3]);
// => [1, 2]

_.intersection([arrays])
source npm package

Создает массив уникальных значений, которые включены во все заданные массивы, используя SameValueZero для сравнения на равенство. Порядок и ссылки на результирующие значения определяются первым массивом.

Since

0.1.0

Arguments

  1. [arrays] (...Array): Массивы для проверки.

Returns

(Array): Возвращает новый массив пересекающихся значений.

Example

_.intersection([2, 1], [2, 3]);
// => [2]

_.intersectionBy([arrays], [iteratee=_.identity])
source npm package

Этот метод похож на _.intersection, за исключением того, что он принимает iteratee, который вызывается для каждого элемента каждого arrays для генерации критерия, по которому они сравниваются. Порядок и ссылки на результирующие значения определяются первым массивом. Итерируемая функция вызывается с одним аргументом:
(value).

Since

4.0.0

Arguments

  1. [arrays] (...Array): Массивы для проверки.
  2. [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])
source npm package

Этот метод похож на _.intersection, за исключением того, что он принимает comparator, который вызывается для сравнения элементов arrays. Порядок и ссылки на результирующие значения определяются первым массивом. Функция сравнения вызывается с двумя аргументами: (arrVal, othVal).

Since

4.0.0

Arguments

  1. [arrays] (...Array): Массивы для проверки.
  2. [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=','])
source npm package

Преобразует все элементы в array в строку, разделенную separator.

Since

4.0.0

Arguments

  1. array (Array): Массив для преобразования.
  2. [separator=','] (string): Разделитель элементов.

Returns

(string): Возвращает объединенную строку.

Example

_.join(['a', 'b', 'c'], '~');
// => 'a~b~c'

_.last(array)
source npm package

Возвращает последний элемент array.

Since

0.1.0

Arguments

  1. array (Array): Массив для запроса.

Returns

(*): Возвращает последний элемент array.

Example

_.last([1, 2, 3]);
// => 3

_.lastIndexOf(array, value, [fromIndex=array.length-1])
source npm package

Этот метод похож на _.indexOf, за исключением того, что он итерирует элементы array справа налево.

Since

0.1.0

Arguments

  1. array (Array): Массив для проверки.
  2. value (*): Значение для поиска.
  3. [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])
source npm package

Возвращает элемент с индексом n из array. Если n отрицательное, возвращается n-й элемент с конца.

Since

4.11.0

Arguments

  1. array (Array): Массив для запроса.
  2. [n=0] (number): Индекс возвращаемого элемента.

Returns

(*): Возвращает n-й элемент array.

Example

var array = ['a', 'b', 'c', 'd'];
 
_.nth(array, 1);
// => 'b'
 
_.nth(array, -2);
// => 'c';

_.pull(array, [values])
source npm package

Удаляет все заданные значения из array с использованием SameValueZero для сравнения на равенство.

Примечание: В отличие от _.without, этот метод изменяет array. Используйте _.remove для удаления элементов из массива по предикату.

Since

2.0.0

Arguments

  1. array (Array): Массив для изменения.
  2. [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)
source npm package

Этот метод похож на _.pull, за исключением того, что он принимает массив значений для удаления.

Примечание: В отличие от _.difference, этот метод изменяет array.

Since

4.0.0

Arguments

  1. array (Array): Массив для изменения.
  2. 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])
source npm package

Этот метод похож на _.pullAll, за исключением того, что он принимает iteratee, который вызывается для каждого элемента array и values для генерации критерия, по которому они сравниваются. Итерируемая функция вызывается с одним аргументом: (value).

Примечание: В отличие от _.differenceBy, этот метод изменяет array.

Since

4.0.0

Аргументы

  1. array (Array): Массив для изменения.
  2. values (Array): Значения для удаления.
  3. [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])
source npm package

Этот метод похож на _.pullAll, за исключением того, что он принимает comparator, который вызывается для сравнения элементов array с values. Функция сравнения вызывается с двумя аргументами: (arrVal, othVal).

Примечание: В отличие от _.differenceWith, этот метод изменяет array.

Since

4.6.0

Аргументы

  1. array (Array): Массив для изменения.
  2. values (Array): Значения для удаления.
  3. [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])
source npm package

Удаляет элементы из array соответствующие indexes и возвращает массив удаленных элементов.

Примечание: В отличие от _.at, этот метод изменяет array.

Since

3.0.0

Аргументы

  1. array (Array): Массив для изменения.
  2. [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])
source npm package

Удаляет все элементы из array, для которых predicate возвращает true, и возвращает массив удаленных элементов. Функция предиката вызывается с тремя аргументами: (value, index, array).

Примечание: В отличие от _.filter, этот метод изменяет array. Используйте _.pull для удаления элементов из массива по значению.

Since

2.0.0

Аргументы

  1. array (Array): Массив для изменения.
  2. [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)
source npm package

Разворачивает array, так что первый элемент становится последним, второй элемент становится предпоследним и так далее.

Примечание: Этот метод изменяет array и основан на Array#reverse.

Since

4.0.0

Аргументы

  1. 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])
source npm package

Создает срез array от start до, но не включая, end.

Примечание: Этот метод используется вместо Array#slice для обеспечения возврата плотных массивов.

Since

3.0.0

Аргументы

  1. array (Array): Массив для среза.
  2. [start=0] (number): Начальная позиция.
  3. [end=array.length] (number): Конечная позиция.

Возвращает

(Array): Возвращает срез array.

_.sortedIndex(array, value)
source npm package

Использует бинарный поиск для определения наименьшего индекса, в который value должен быть вставлен в array для поддержания его порядка сортировки.

Since

0.1.0

Аргументы

  1. array (Array): Отсортированный массив для проверки.
  2. value (*): Значение для оценки.

Возвращает

(number): Возвращает индекс, в который value должен быть вставлен в array.

Пример

_.sortedIndex([30, 50], 40);
// => 1

_.sortedIndexBy(array, value, [iteratee=_.identity])
source npm package

Этот метод похож на _.sortedIndex, за исключением того, что он принимает iteratee, который вызывается для value и каждого элемента array для вычисления их ранга сортировки. Итерируемая функция вызывается с одним аргументом: (value).

Since

4.0.0

Аргументы

  1. array (Array): Отсортированный массив для проверки.
  2. value (*): Значение для оценки.
  3. [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)
source npm package

Этот метод похож на _.indexOf, за исключением того, что он выполняет бинарный поиск в отсортированном array.

Since

4.0.0

Аргументы

  1. array (Array): Массив для проверки.
  2. value (*): Значение для поиска.

Возвращает

(number): Возвращает индекс найденного значения, иначе -1.

Пример

_.sortedIndexOf([4, 5, 5, 5, 6], 5);
// => 1

_.sortedLastIndex(array, value)
source npm package

Этот метод похож на _.sortedIndex, за исключением того, что он возвращает наибольший индекс, в который value должен быть вставлен в array для поддержания его порядка сортировки.

Since

3.0.0

Аргументы

  1. array (Array): Отсортированный массив для проверки.
  2. value (*): Значение для оценки.

Возвращает

(number): Возвращает индекс, в который value должен быть вставлен в array.

Пример

_.sortedLastIndex([4, 5, 5, 5, 6], 5);
// => 4

_.sortedLastIndexBy(array, value, [iteratee=_.identity])
source npm package

Этот метод похож на _.sortedLastIndex, за исключением того, что он принимает iteratee, который вызывается для value и каждого элемента array для вычисления их ранга сортировки. Итерируемая функция вызывается с одним аргументом: (value).

Since

4.0.0

Аргументы

  1. array (Array): Отсортированный массив для проверки.
  2. value (*): Значение для оценки.
  3. [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)
source npm package

Этот метод похож на _.lastIndexOf, за исключением того, что он выполняет бинарный поиск в отсортированном array.

Since

4.0.0

Аргументы

  1. array (Array): Массив для проверки.
  2. value (*): Значение для поиска.

Возвращает

(number): Возвращает индекс найденного значения, иначе -1.

Пример

_.sortedLastIndexOf([4, 5, 5, 5, 6], 5);
// => 3

_.sortedUniq(array)
source npm package

Этот метод похож на _.uniq, за исключением того, что он разработан и оптимизирован для отсортированных массивов.

Since

4.0.0

Аргументы

  1. array (Array): Массив для проверки.

Возвращает

(Array): Возвращает новый массив без дубликатов.

Пример

_.sortedUniq([1, 1, 2]);
// => [1, 2]

_.sortedUniqBy(array, [iteratee])
source npm package

Этот метод похож на _.uniqBy, за исключением того, что он разработан и оптимизирован для отсортированных массивов.

Since

4.0.0

Arguments

  1. array (Array): Массив для проверки.
  2. [iteratee] (Function): Итерируемая функция, вызываемая для каждого элемента.

Returns

(Array): Возвращает новый массив без дубликатов.

Example

_.sortedUniqBy([1.1, 1.2, 2.3, 2.4], Math.floor);
// => [1.1, 2.3]

_.tail(array)
source npm package

Возвращает все элементы, кроме первого, из array.

Since

4.0.0

Arguments

  1. array (Array): Массив для запроса.

Returns

(Array): Возвращает срез array.

Example

_.tail([1, 2, 3]);
// => [2, 3]

_.take(array, [n=1])
source npm package

Создает срез array с n элементами, взятыми с начала.

Since

0.1.0

Arguments

  1. array (Array): Массив для запроса.
  2. [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])
source npm package

Создает срез array с n элементами, взятыми с конца.

Since

3.0.0

Arguments

  1. array (Array): Массив для запроса.
  2. [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])
source npm package

Создает срез array с элементами, взятыми с конца. Элементы берутся до тех пор, пока predicate не вернет ложное значение. Предикат вызывается с тремя аргументами: (value, index, array).

Since

3.0.0

Arguments

  1. array (Array): Массив для запроса.
  2. [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])
source npm package

Создает срез array с элементами, взятыми с начала. Элементы берутся до тех пор, пока predicate не вернет ложное значение. Предикат вызывается с тремя аргументами: (value, index, array).

Since

3.0.0

Arguments

  1. array (Array): Массив для запроса.
  2. [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])
source npm package

Создает массив уникальных значений в порядке следования из всех заданных массивов, используя SameValueZero для сравнения на равенство.

Since

0.1.0

Arguments

  1. [arrays] (...Array): Массивы для проверки.

Returns

(Array): Возвращает новый массив объединенных значений.

Example

_.union([2], [1, 2]);
// => [2, 1]

_.unionBy([arrays], [iteratee=_.identity])
source npm package

Этот метод похож на _.union, за исключением того, что он принимает iteratee, который вызывается для каждого элемента каждого arrays, чтобы сгенерировать критерий, по которому вычисляется уникальность. Результирующие значения выбираются из первого массива, в котором встречается значение. Итерируемая функция вызывается с одним аргументом:
(value).

Since

4.0.0

Arguments

  1. [arrays] (...Array): Массивы для проверки.
  2. [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])
source npm package

Этот метод похож на _.union, за исключением того, что он принимает comparator, который вызывается для сравнения элементов arrays. Результирующие значения выбираются из первого массива, в котором встречается значение. Компаратор вызывается с двумя аргументами: (arrVal, othVal).

Since

4.0.0

Arguments

  1. [arrays] (...Array): Массивы для проверки.
  2. [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)
source npm package

Создает версию массива без дубликатов, используя SameValueZero для сравнения на равенство, в которой сохраняется только первое вхождение каждого элемента. Порядок результирующих значений определяется порядком их появления в массиве.

Since

0.1.0

Arguments

  1. array (Array): Массив для проверки.

Returns

(Array): Возвращает новый массив без дубликатов.

Example

_.uniq([2, 1, 2]);
// => [2, 1]

_.uniqBy(array, [iteratee=_.identity])
source npm package

Этот метод похож на _.uniq, за исключением того, что он принимает iteratee, который вызывается для каждого элемента в array, чтобы сгенерировать критерий, по которому вычисляется уникальность. Порядок результирующих значений определяется порядком их появления в массиве. Итерируемая функция вызывается с одним аргументом:
(value).

Since

4.0.0

Arguments

  1. array (Array): Массив для проверки.
  2. [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])
source npm package

Этот метод похож на _.uniq, за исключением того, что он принимает comparator, который вызывается для сравнения элементов array. Порядок результирующих значений определяется порядком их появления в массиве. Компаратор вызывается с двумя аргументами: (arrVal, othVal).

Since

4.0.0

Arguments

  1. array (Array): Массив для проверки.
  2. [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)
source npm package

Этот метод похож на _.zip, за исключением того, что он принимает массив сгруппированных элементов и создает массив, группирующий элементы в их конфигурацию до сжатия.

Since

1.2.0

Arguments

  1. 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])
source npm package

Этот метод похож на _.unzip, за исключением того, что он принимает iteratee, чтобы указать, как следует объединять перегруппированные значения. Итерируемая функция вызывается с элементами каждой группы: (...group).

Since

3.8.0

Arguments

  1. array (Array): Массив сгруппированных элементов для обработки.
  2. [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])
source npm package

Создает массив, исключая все заданные значения, используя SameValueZero для сравнения на равенство.

Примечание: В отличие от _.pull, этот метод возвращает новый массив.

Since

0.1.0

Arguments

  1. array (Array): Массив для проверки.
  2. [values] (...*): Значения для исключения.

Returns

(Array): Возвращает новый массив отфильтрованных значений.

Example

_.without([2, 1, 2, 3], 1, 2);
// => [3]

_.xor([arrays])
source npm package

Создает массив уникальных значений, который является симметрической разностью заданных массивов. Порядок результирующих значений определяется порядком их появления в массивах.

Since

2.4.0

Arguments

  1. [arrays] (...Array): Массивы для проверки.

Returns

(Array): Возвращает новый массив отфильтрованных значений.

Example

_.xor([2, 1], [2, 3]);
// => [1, 3]

_.xorBy([arrays], [iteratee=_.identity])
source npm package

Этот метод похож на _.xor, за исключением того, что он принимает iteratee, который вызывается для каждого элемента каждого arrays для генерации критерия, по которому они сравниваются. Порядок результирующих значений определяется порядком их появления в массивах. Итератор вызывается с одним аргументом: (value).

Since

4.0.0

Arguments

  1. [arrays] (...Array): Массивы для проверки.
  2. [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])
source npm package

Этот метод похож на _.xor, за исключением того, что он принимает comparator, который вызывается для сравнения элементов arrays. Порядок результирующих значений определяется порядком их появления в массивах. Компаратор вызывается с двумя аргументами: (arrVal, othVal).

Since

4.0.0

Arguments

  1. [arrays] (...Array): Массивы для проверки.
  2. [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])
source npm package

Создает массив сгруппированных элементов, первый из которых содержит первые элементы заданных массивов, второй — вторые элементы заданных массивов и так далее.

Since

0.1.0

Arguments

  1. [arrays] (...Array): Массивы для обработки.

Returns

(Array): Возвращает новый массив сгруппированных элементов.

Example

_.zip(['a', 'b'], [1, 2], [true, false]);
// => [['a', 1, true], ['b', 2, false]]

_.zipObject([props=[]], [values=[]])
source npm package

Этот метод похож на _.fromPairs, за исключением того, что он принимает два массива: один с идентификаторами свойств и один с соответствующими значениями.

Since

0.4.0

Arguments

  1. [props=[]] (Array): Идентификаторы свойств.
  2. [values=[]] (Array): Значения свойств.

Returns

(Object): Возвращает новый объект.

Example

_.zipObject(['a', 'b'], [1, 2]);
// => { 'a': 1, 'b': 2 }

_.zipObjectDeep([props=[]], [values=[]])
source npm package

Этот метод похож на _.zipObject, за исключением того, что он поддерживает пути к свойствам.

Since

4.1.0

Arguments

  1. [props=[]] (Array): Идентификаторы свойств.
  2. [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])
source npm package

Этот метод похож на _.zip, за исключением того, что он принимает iteratee для указания того, как следует комбинировать сгруппированные значения. Итератор вызывается с элементами каждой группы: (...group).

Since

3.8.0

Arguments

  1. [arrays] (...Array): Массивы для обработки.
  2. [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])
source npm package

Создает объект, составленный из ключей, сгенерированных из результатов выполнения каждого элемента collection через iteratee. Соответствующее значение каждого ключа — это количество раз, когда ключ был возвращен iteratee. Итератор вызывается с одним аргументом: (value).

Since

0.5.0

Arguments

  1. collection (Array|Object): Коллекция для итерации.
  2. [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])
source npm package

Проверяет, возвращает ли predicate истинное значение для всех элементов collection. Итерация прекращается, как только predicate возвращает ложное значение. Предикат вызывается с тремя аргументами: (value, index|key, collection).

Примечание: Этот метод возвращает true для пустых коллекций, потому что все истинно для элементов пустых коллекций.

Since

0.1.0

Arguments

  1. collection (Array|Object): Коллекция для итерации.
  2. [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])
source npm package

Итерирует элементы collection, возвращая массив всех элементов, для которых predicate возвращает истинное значение. Предикат вызывается с тремя аргументами: (value, index|key, collection).

Примечание: В отличие от _.remove, этот метод возвращает новый массив.

Since

0.1.0

Arguments

  1. collection (Array|Object): Коллекция для итерации.
  2. [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])
source npm package

Итерирует элементы collection, возвращая первый элемент, для которого predicate возвращает истинное значение. Предикат вызывается с тремя аргументами: (value, index|key, collection).

Since

0.1.0

Arguments

  1. collection (Array|Object): Коллекция для проверки.
  2. [predicate=_.identity] (Function): Функция, вызываемая на каждой итерации.
  3. [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])
source npm package

Этот метод похож на _.find, за исключением того, что он итерирует элементы collection справа налево.

Since

2.0.0

Arguments

  1. collection (Array|Object): Коллекция для проверки.
  2. [predicate=_.identity] (Function): Функция, вызываемая на каждой итерации.
  3. [fromIndex=collection.length-1] (number): Индекс, с которого начинать поиск.

Returns

(*): Возвращает найденный элемент, иначе undefined.

Example

_.findLast([1, 2, 3, 4], function(n) {
  return n % 2 == 1;
});
// => 3

_.flatMap(collection, [iteratee=_.identity])
source npm package

Создает уплощенный массив значений, пропуская каждый элемент в collection через iteratee и уплощая сопоставленные результаты. Итератор вызывается с тремя аргументами: (value, index|key, collection).

Since

4.0.0

Arguments

  1. collection (Array|Object): Коллекция для итерации.
  2. [iteratee=_.identity] (Function): Функция, вызываемая на каждой итерации.

Returns

(Array): Возвращает новый уплощенный массив.

Example

function duplicate(n) {
  return [n, n];
}
 
_.flatMap([1, 2], duplicate);
// => [1, 1, 2, 2]

_.flatMapDeep(collection, [iteratee=_.identity])
source npm package

Этот метод похож на _.flatMap, за исключением того, что он рекурсивно сглаживает сопоставленные результаты.

Since

4.7.0

Arguments

  1. collection (Array|Object): Коллекция для итерации.
  2. [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])
source npm package

Этот метод похож на _.flatMap, за исключением того, что он рекурсивно сглаживает сопоставленные результаты до depth раз.

Since

4.7.0

Arguments

  1. collection (Array|Object): Коллекция для итерации.
  2. [iteratee=_.identity] (Function): Функция, вызываемая на каждой итерации.
  3. [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])
source npm package

Итерирует элементы collection и вызывает iteratee для каждого элемента. Итерируемая функция вызывается с тремя аргументами: (value, index|key, collection). Итерируемые функции могут досрочно завершить итерацию, явно вернув false.

Примечание: Как и в других методах "Коллекций", объекты со свойством "length" итерируются как массивы. Чтобы избежать этого поведения, используйте _.forIn или _.forOwn для итерации по объектам.

Since

0.1.0

Aliases

_.each

Arguments

  1. collection (Array|Object): Коллекция для итерации.
  2. [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])
source npm package

Этот метод похож на _.forEach, за исключением того, что он итерирует элементы collection справа налево.

Since

2.0.0

Aliases

_.eachRight

Arguments

  1. collection (Array|Object): Коллекция для итерации.
  2. [iteratee=_.identity] (Function): Функция, вызываемая на каждой итерации.

Returns

(*): Возвращает collection.

Example

_.forEachRight([1, 2], function(value) {
  console.log(value);
});
// => Logs `2` then `1`.

_.groupBy(collection, [iteratee=_.identity])
source npm package

Создает объект, состоящий из ключей, сгенерированных из результатов выполнения каждого элемента collection через iteratee. Порядок сгруппированных значений определяется порядком их появления в collection. Соответствующее значение каждого ключа - это массив элементов, ответственных за генерацию ключа. Итерируемая функция вызывается с одним аргументом: (value).

Since

0.1.0

Arguments

  1. collection (Array|Object): Коллекция для итерации.
  2. [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])
source npm package

Проверяет, содержится ли value в collection. Если collection является строкой, проверяется наличие подстроки value, в противном случае используется SameValueZero для сравнения на равенство. Если fromIndex является отрицательным числом, оно используется в качестве смещения от конца collection.

Since

0.1.0

Arguments

  1. collection (Array|Object|string): Коллекция для проверки.
  2. value (*): Значение для поиска.
  3. [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])
source npm package

Вызывает метод по path каждого элемента в collection, возвращая массив результатов каждого вызова метода. Любые дополнительные аргументы передаются каждому вызываемому методу. Если path является функцией, она вызывается для каждого элемента в collection и this привязывается к нему.

Since

4.0.0

Arguments

  1. collection (Array|Object): Коллекция для итерации.
  2. path (Array|Function|string): Путь к вызываемому методу или функция, вызываемая на каждой итерации.
  3. [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])
source npm package

Создает объект, состоящий из ключей, сгенерированных из результатов выполнения каждого элемента collection через iteratee. Соответствующее значение каждого ключа - это последний элемент, ответственный за генерацию ключа. Итерируемая функция вызывается с одним аргументом: (value).

Since

4.0.0

Arguments

  1. collection (Array|Object): Коллекция для итерации.
  2. [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])
source npm package

Создает массив значений, пропуская каждый элемент в 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

  1. collection (Array|Object): Коллекция для итерации.
  2. [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])
source npm package

Этот метод похож на _.sortBy, за исключением того, что он позволяет указывать порядок сортировки итерируемых элементов. Если orders не указан, все значения сортируются по возрастанию. В противном случае укажите порядок "desc" для сортировки по убыванию или "asc" для сортировки по возрастанию соответствующих значений.

Since

4.0.0

Arguments

  1. collection (Array|Object): Коллекция для итерации.
  2. [iteratees=[_.identity]] (Array[]|Function[]|Object[]|string[]): Итерируемые элементы для сортировки.
  3. [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])
source npm package

Создает массив элементов, разделенных на две группы, первая из которых содержит элементы, для которых predicate возвращает истинное значение, а вторая - элементы, для которых predicate возвращает ложное значение. Предикат вызывается с одним аргументом: (value).

Since

3.0.0

Arguments

  1. collection (Array|Object): Коллекция для итерации.
  2. [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])
source npm package

Сводит 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

  1. collection (Array|Object): Коллекция для итерации.
  2. [iteratee=_.identity] (Function): Функция, вызываемая на каждой итерации.
  3. [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])
source npm package

Этот метод похож на _.reduce, за исключением того, что он итерирует элементы collection справа налево.

Since

0.1.0

Arguments

  1. collection (Array|Object): Коллекция для итерации.
  2. [iteratee=_.identity] (Function): Функция, вызываемая на каждой итерации.
  3. [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])
source npm package

Противоположность _.filter; этот метод возвращает элементы collection, для которых predicate не возвращает истинное значение.

Since

0.1.0

Arguments

  1. collection (Array|Object): Коллекция для итерации.
  2. [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)
source npm package

Получает случайный элемент из collection.

Since

2.0.0

Arguments

  1. collection (Array|Object): Коллекция для выборки.

Returns

(*): Возвращает случайный элемент.

Example

_.sample([1, 2, 3, 4]);
// => 2

_.sampleSize(collection, [n=1])
source npm package

Получает n случайных элементов с уникальными ключами из collection до размера collection.

Since

4.0.0

Arguments

  1. collection (Array|Object): Коллекция для выборки.
  2. [n=1] (number): Количество элементов для выборки.

Returns

(Array): Возвращает случайные элементы.

Example

_.sampleSize([1, 2, 3], 2);
// => [3, 1]
 
_.sampleSize([1, 2, 3], 4);
// => [2, 3, 1]

_.shuffle(collection)
source npm package

Создает массив перемешанных значений, используя версию алгоритма перемешивания Фишера-Йетса Fisher-Yates shuffle.

Since

0.1.0

Arguments

  1. collection (Array|Object): Коллекция для перемешивания.

Returns

(Array): Возвращает новый перемешанный массив.

Example

_.shuffle([1, 2, 3, 4]);
// => [4, 1, 3, 2]

_.size(collection)
source npm package

Получает размер collection, возвращая его длину для массивоподобных значений или количество собственных перечисляемых свойств со строковыми ключами для объектов.

Since

0.1.0

Arguments

  1. 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])
source npm package

Проверяет, возвращает ли predicate истинное значение для любого элемента collection. Итерация прекращается, как только predicate возвращает истинное значение. Предикат вызывается с тремя аргументами: (value, index|key, collection).

Since

0.1.0

Arguments

  1. collection (Array|Object): Коллекция для итерации.
  2. [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]])
source npm package

Создает массив элементов, отсортированных в порядке возрастания по результатам прохождения каждого элемента коллекции через каждую итерируемую функцию. Этот метод выполняет стабильную сортировку, то есть сохраняет исходный порядок сортировки равных элементов. Итерируемые функции вызываются с одним аргументом: (value).

Since

0.1.0

Arguments

  1. collection (Array|Object): Коллекция для итерации.
  2. [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()
source npm package

Получает метку времени количества миллисекунд, прошедших с момента начала эпохи 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)
source npm package

Противоположность _.before; этот метод создает функцию, которая вызывает func, когда она вызывается n или более раз.

Since

0.1.0

Arguments

  1. n (number): Количество вызовов, прежде чем будет вызвана func.
  2. 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])
source npm package

Создает функцию, которая вызывает func, с максимум n аргументами, игнорируя любые дополнительные аргументы.

Since

3.0.0

Arguments

  1. func (Function): Функция, для которой нужно ограничить количество аргументов.
  2. [n=func.length] (number): Предел арности.

Returns

(Function): Возвращает новую функцию с ограничением.

Example

_.map(['6', '8', '10'], _.ary(parseInt, 1));
// => [6, 8, 10]

_.before(n, func)
source npm package

Создает функцию, которая вызывает func, со связыванием this и аргументами созданной функции, пока она вызывается менее n раз. Последующие вызовы созданной функции возвращают результат последнего вызова func.

Since

3.0.0

Arguments

  1. n (number): Количество вызовов, после которого func больше не вызывается.
  2. 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])
source npm package

Создает функцию, которая вызывает func со связыванием this thisArg и partials, добавленными в начало аргументов, которые она получает.

Значение _.bind.placeholder, которое по умолчанию равно _ в монолитных сборках, может использоваться в качестве заполнителя для частично примененных аргументов.

Примечание: В отличие от нативного Function#bind, этот метод не устанавливает свойство «length» связанных функций.

Since

0.1.0

Arguments

  1. func (Function): Функция для связывания.
  2. thisArg (*): Связывание this func.
  3. [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])
source npm package

Создает функцию, которая вызывает метод по object[key] с partials , добавленными в начало аргументов, которые она получает.

Этот метод отличается от _.bind тем, что позволяет привязанным функциям ссылаться на методы, которые могут быть переопределены или еще не существуют. См. статью Питера Михакса для получения более подробной информации.

Значение _.bindKey.placeholder, по умолчанию равное _ в монолитных сборках, может использоваться в качестве заполнителя для частично примененных аргументов.

С версии

0.10.0

Аргументы

  1. object (Объект): Объект, на котором вызывается метод.
  2. key (строка): Ключ метода.
  3. [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])
source npm package

Создает функцию, которая принимает аргументы func и либо вызывает func, возвращая его результат, если предоставлено как минимум arity аргументов, либо возвращает функцию, которая принимает оставшиеся func аргументов и так далее. Арность func может быть указана, если func.length недостаточно.

Значение _.curry.placeholder, по умолчанию равное _ в монолитных сборках, может использоваться в качестве заполнителя для предоставленных аргументов.

Примечание: Этот метод не устанавливает свойство "length" для каррированных функций.

С версии

2.0.0

Аргументы

  1. func (Функция): Функция для каррирования.
  2. [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])
source npm package

Этот метод похож на _.curry, за исключением того, что аргументы применяются к func аналогично _.partialRight, а не _.partial.

Значение _.curryRight.placeholder, по умолчанию равное _ в монолитных сборках, может использоваться в качестве заполнителя для предоставленных аргументов.

Примечание: Этот метод не устанавливает свойство "length" для каррированных функций.

С версии

3.0.0

Аргументы

  1. func (Функция): Функция для каррирования.
  2. [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={}])
source npm package

Создает функцию с отложенным вызовом, которая откладывает вызов 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

Аргументы

  1. func (Функция): Функция, для которой нужно сделать отложенный вызов.
  2. [wait=0] (число): Количество миллисекунд для задержки.
  3. [options={}] (Объект): Объект параметров.
  4. [options.leading=false] (логическое): Указывает на вызов на переднем крае таймаута.
  5. [options.maxWait] (число): Максимальное время, на которое func может быть отложено перед вызовом.
  6. [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])
source npm package

Откладывает вызов func до тех пор, пока не очистится текущий стек вызовов. Все дополнительные аргументы передаются func, когда он вызывается.

С версии

0.1.0

Аргументы

  1. func (Функция): Функция, вызов которой нужно отложить.
  2. [args] (...*): Аргументы для вызова func.

Возвращает

(число): Возвращает идентификатор таймера.

Пример

_.defer(function(text) {
  console.log(text);
}, 'deferred');
// => Logs 'deferred' after one millisecond.

_.delay(func, wait, [args])
source npm package

Вызывает func через wait миллисекунд. Все дополнительные аргументы передаются func, когда он вызывается.

С версии

0.1.0

Аргументы

  1. func (Функция): Функция, вызов которой нужно отложить.
  2. wait (число): Количество миллисекунд для задержки вызова.
  3. [args] (...*): Аргументы для вызова func.

Возвращает

(число): Возвращает идентификатор таймера.

Пример

_.delay(function(text) {
  console.log(text);
}, 1000, 'later');
// => Logs 'later' after one second.

_.flip(func)
source npm package

Создает функцию, которая вызывает func с перевернутыми аргументами.

С версии

4.0.0

Аргументы

  1. func (Функция): Функция, для которой нужно перевернуть аргументы.

Возвращает

(Функция): Возвращает новую функцию с перевернутыми аргументами.

Пример

var flipped = _.flip(function() {
  return _.toArray(arguments);
});
 

flipped('a', 'b', 'c', 'd');
// => ['d', 'c', 'b', 'a']

_.memoize(func, [resolver])
source npm package

Создает функцию, которая запоминает результат func. Если предоставлен resolver, он определяет ключ кэша для хранения результата на основе аргументов, предоставленных запоминающей функции. По умолчанию, первый аргумент, предоставленный запоминающей функции, используется в качестве ключа кэша карты. func вызывается со связыванием this запоминающей функции.

Примечание: Кэш предоставляется как свойство cache запоминающей функции. Его создание может быть настроено путем замены конструктора _.memoize.Cache на тот, экземпляры которого реализуют интерфейс метода Map clear, delete, get, has и set.

С версии

0.1.0

Аргументы

  1. func (Функция): Функция, результат которой нужно запомнить.
  2. [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)
source npm package

Создает функцию, которая отрицает результат предиката func. Предикат func вызывается со связыванием this и аргументами созданной функции.

С версии

3.0.0

Аргументы

  1. predicate (Функция): Предикат для отрицания.

Возвращает

(Функция): Возвращает новую отрицательную функцию.

Пример

function isEven(n) {
  return n % 2 == 0;
}
 
_.filter([1, 2, 3, 4, 5, 6], _.negate(isEven));
// => [1, 3, 5]

_.once(func)
source npm package

Создает функцию, которая ограничена одним вызовом func. Повторные вызовы функции возвращают значение первого вызова. func вызывается со связыванием this и аргументами созданной функции.

С версии

0.1.0

Аргументы

  1. func (Функция): Функция, которую нужно ограничить.

Возвращает

(Функция): Возвращает новую ограниченную функцию.

Пример

var initialize = _.once(createApplication);

initialize();

initialize();
// => `createApplication` is invoked once

_.overArgs(func, [transforms=[_.identity]])
source npm package

Создаёт функцию, которая вызывает func с преобразованными аргументами.

Since

4.0.0

Arguments

  1. func (Function): Функция для обертывания.
  2. [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])
source npm package

Создаёт функцию, которая вызывает func с partials добавленными в начало аргументов, которые она получает. Этот метод похож на _.bind, за исключением того, что он не изменяет this привязку.

Значение _.partial.placeholder, которое по умолчанию равно _ в монолитных сборках, может использоваться в качестве заполнителя для частично применённых аргументов.

Примечание: Этот метод не устанавливает свойство "length" для частично применённых функций.

Since

0.2.0

Arguments

  1. func (Function): Функция, к которой частично применяются аргументы.
  2. [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])
source npm package

Этот метод похож на _.partial, за исключением того, что частично применённые аргументы добавляются к аргументам, которые он получает.

Значение _.partialRight.placeholder, которое по умолчанию равно _ в монолитных сборках, может использоваться в качестве заполнителя для частично применённых аргументов.

Примечание: Этот метод не устанавливает свойство "length" для частично применённых функций.

Since

1.0.0

Arguments

  1. func (Function): Функция, к которой частично применяются аргументы.
  2. [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)
source npm package

Создаёт функцию, которая вызывает func с аргументами, расположенными в соответствии с указанными indexes, где значение аргумента с первым индексом предоставляется в качестве первого аргумента, значение аргумента со вторым индексом предоставляется в качестве второго аргумента и так далее.

Since

3.0.0

Arguments

  1. func (Function): Функция, для которой нужно переставить аргументы.
  2. 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])
source npm package

Создаёт функцию, которая вызывает func с this привязкой созданной функции и аргументами с start и далее, предоставленными в виде массива.

Примечание: Этот метод основан на rest параметре.

Since

4.0.0

Arguments

  1. func (Function): Функция, к которой нужно применить rest параметр.
  2. [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])
source npm package

Создаёт функцию, которая вызывает func с this привязкой созданной функции и массивом аргументов, очень похожим на Function#apply.

Примечание: Этот метод основан на операторе spread.

Since

3.2.0

Arguments

  1. func (Function): Функция, для которой нужно распределить аргументы.
  2. [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={}])
source npm package

Создаёт функцию с ограничением частоты вызова, которая вызывает 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

  1. func (Function): Функция, которую нужно ограничить по частоте вызова.
  2. [wait=0] (number): Количество миллисекунд для ограничения частоты вызовов.
  3. [options={}] (Object): Объект параметров.
  4. [options.leading=true] (boolean): Указывает на вызов на переднем крае таймаута.
  5. [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)
source npm package

Создаёт функцию, которая принимает не более одного аргумента, игнорируя любые дополнительные аргументы.

Since

4.0.0

Arguments

  1. func (Function): Функция, для которой нужно ограничить количество аргументов.

Returns

(Function): Возвращает новую функцию с ограничением.

Example

_.map(['6', '8', '10'], _.unary(parseInt));
// => [6, 8, 10]

_.wrap(value, [wrapper=identity])
source npm package

Создаёт функцию, которая предоставляет value в wrapper в качестве своего первого аргумента. Любые дополнительные аргументы, предоставленные функции, добавляются к тем, которые предоставлены wrapper. Обертка вызывается с this привязкой созданной функции.

Since

0.1.0

Arguments

  1. value (*): Значение для обертывания.
  2. [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, &amp; pebbles</p>'

Методы «Lang»

_.castArray(value)
source npm package

Преобразует value в массив, если это не массив.

Since

4.4.0

Arguments

  1. 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)
source npm package

Создаёт неглубокую копию value.

Примечание: Этот метод слабо основан на алгоритме структурированного клонирования и поддерживает клонирование массивов, буферов массивов, булевых значений, объектов Date, Map, чисел, Object, регулярных выражений, Set, строк, символов и типизированных массивов. Собственные перечисляемые свойства arguments объектов клонируются как простые объекты. Для неклонируемых значений, таких как объекты ошибок, функции, узлы DOM и WeakMaps, возвращается пустой объект.

Since

0.1.0

Arguments

  1. value (*): Значение для клонирования.

Returns

(*): Возвращает клонированное значение.

Example

var objects = [{ 'a': 1 }, { 'b': 2 }];
 

var shallow = _.clone(objects);

console.log(shallow[0] === objects[0]);
// => true

_.cloneDeep(value)
source npm package

Этот метод похож на _.clone, за исключением того, что он рекурсивно клонирует value.

Since

1.0.0

Arguments

  1. value (*): Значение для рекурсивного клонирования.

Returns

(*): Возвращает глубоко клонированное значение.

Example

var objects = [{ 'a': 1 }, { 'b': 2 }];
 

var deep = _.cloneDeep(objects);

console.log(deep[0] === objects[0]);
// => false

_.cloneDeepWith(value, [customizer])
source npm package

Этот метод похож на _.cloneWith, за исключением того, что он рекурсивно клонирует value.

Since

4.0.0

Arguments

  1. value (*): Значение для рекурсивного клонирования.
  2. [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])
source npm package

Этот метод похож на _.clone, за исключением того, что он принимает customizer, который вызывается для создания клонированного значения. Если customizer возвращает undefined, обработка клонирования выполняется методом. customizer вызывается с четырьмя аргументами; (value [, index|key, object, stack]).

Since

4.0.0

Arguments

  1. value (*): Значение для клонирования.
  2. [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)
source npm package

Проверяет, соответствует ли object source путем вызова свойств-предикатов source с соответствующими значениями свойств object.

Примечание: Этот метод эквивалентен _.conforms, когда source частично применён.

Since

4.14.0

Arguments

  1. object (Object): Объект для проверки.
  2. 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)
source npm package

Выполняет сравнение SameValueZero между двумя значениями, чтобы определить, являются ли они эквивалентными.

Since

4.0.0

Arguments

  1. value (*): Значение для сравнения.
  2. 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)
source npm package

Проверяет, больше ли value чем other.

Since

3.9.0

Arguments

  1. value (*): Значение для сравнения.
  2. other (*): Другое значение для сравнения.

Returns

(boolean): Возвращает true, если value больше чем other, иначе false.

Example

_.gt(3, 1);
// => true
 
_.gt(3, 3);
// => false
 
_.gt(1, 3);
// => false

_.gte(value, other)
source npm package

Проверяет, больше ли value или равно other.

Since

3.9.0

Arguments

  1. value (*): Значение для сравнения.
  2. other (*): Другое значение для сравнения.

Returns

(boolean): Возвращает true, если value больше или равно other, иначе false.

Example

_.gte(3, 1);
// => true
 
_.gte(3, 3);
// => true
 
_.gte(1, 3);
// => false

_.isArguments(value)
source npm package

Проверяет, является ли value объектом, похожим на arguments.

Since

0.1.0

Arguments

  1. value (*): Значение для проверки.

Returns

(boolean): Возвращает true, если value является объектом arguments, иначе false.

Example

_.isArguments(function() { return arguments; }());
// => true
 
_.isArguments([1, 2, 3]);
// => false

_.isArray(value)
source npm package

Проверяет, классифицируется ли value как объект Array.

Since

0.1.0

Arguments

  1. 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)
source npm package

Проверяет, классифицируется ли value как объект ArrayBuffer.

Since

4.3.0

Arguments

  1. value (*): Значение для проверки.

Returns

(boolean): Возвращает true, если value является буферным массивом, иначе false.

Example

_.isArrayBuffer(new ArrayBuffer(2));
// => true
 
_.isArrayBuffer(new Array(2));
// => false

_.isArrayLike(value)
source npm package

Проверяет, является ли value похожим на массив. Значение считается похожим на массив, если оно не является функцией и имеет value.length, который является целым числом больше или равно 0 и меньше или равно Number.MAX_SAFE_INTEGER.

Since

4.0.0

Arguments

  1. 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)
source npm package

Этот метод похож на _.isArrayLike, за исключением того, что он также проверяет, является ли value объектом.

Since

4.0.0

Arguments

  1. 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)
source npm package

Проверяет, классифицируется ли value как примитивный или объектный булев тип.

Since

0.1.0

Arguments

  1. value (*): Значение для проверки.

Returns

(boolean): Возвращает true, если value является булевым значением, иначе false.

Example

_.isBoolean(false);
// => true
 
_.isBoolean(null);
// => false

_.isBuffer(value)
source npm package

Проверяет, является ли value буфером.

Since

4.3.0

Arguments

  1. value (*): Значение для проверки.

Returns

(boolean): Возвращает true, если value является буфером, иначе false.

Example

_.isBuffer(new Buffer(2));
// => true
 
_.isBuffer(new Uint8Array(2));
// => false

_.isDate(value)
source npm package

Проверяет, классифицируется ли value как объект Date.

Since

0.1.0

Arguments

  1. value (*): Значение для проверки.

Returns

(boolean): Возвращает true, если value является объектом даты, иначе false.

Example

_.isDate(new Date);
// => true
 
_.isDate('Mon April 23 2012');
// => false

_.isElement(value)
source npm package

Проверяет, является ли value элементом DOM.

Since

0.1.0

Arguments

  1. value (*): Значение для проверки.

Returns

(boolean): Возвращает true, если value является элементом DOM, иначе false.

Example

_.isElement(document.body);
// => true
 
_.isElement('<body>');
// => false

_.isEmpty(value)
source npm package

Проверяет, является ли value пустым объектом, коллекцией, картой или множеством.

Объекты считаются пустыми, если у них нет собственных перечисляемых свойств со строковыми ключами.

Значения, похожие на массивы, такие как объекты arguments, массивы, буферы, строки или коллекции, похожие на jQuery, считаются пустыми, если у них length равен 0. Аналогично, карты и множества считаются пустыми, если у них size равен 0.

Since

0.1.0

Аргументы

  1. 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)
source npm package

Выполняет глубокое сравнение двух значений, чтобы определить, эквивалентны ли они.

Примечание: Этот метод поддерживает сравнение массивов, буферов массивов, булевых значений, объектов Date, объектов Error, Map, чисел, Object объектов, регулярных выражений, Set, строк, символов и типизированных массивов. Object объекты сравниваются по своим собственным, а не унаследованным, перечисляемым свойствам. Функции и узлы DOM сравниваются по строгому равенству, т. е. ===.

С версии

0.1.0

Аргументы

  1. value (*): Значение для сравнения.
  2. other (*): Другое значение для сравнения.

Возвращаемое значение

(boolean): Возвращает true если значения эквивалентны, иначе false.

Пример

var object = { 'a': 1 };

var other = { 'a': 1 };
 
_.isEqual(object, other);
// => true
 
object === other;
// => false

_.isEqualWith(value, other, [customizer])
source npm package

Этот метод похож на _.isEqual, за исключением того, что он принимает customizer, который вызывается для сравнения значений. Если customizer возвращает undefined, сравнения обрабатываются методом вместо этого. customizer вызывается с шестью аргументами: (objValue, othValue [, index|key, object, other, stack]).

С версии

4.0.0

Аргументы

  1. value (*): Значение для сравнения.
  2. other (*): Другое значение для сравнения.
  3. [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)
source npm package

Проверяет, является ли value объектом Error, EvalError, RangeError, ReferenceError, SyntaxError, TypeError, или URIError.

С версии

3.0.0

Аргументы

  1. value (*): Значение для проверки.

Возвращаемое значение

(boolean): Возвращает true если value является объектом ошибки, иначе false.

Пример

_.isError(new Error);
// => true
 
_.isError(Error);
// => false

_.isFinite(value)
source npm package

Проверяет, является ли value конечным примитивным числом.

Примечание: Этот метод основан на Number.isFinite.

С версии

0.1.0

Аргументы

  1. value (*): Значение для проверки.

Возвращаемое значение

(boolean): Возвращает true если value является конечным числом, иначе false.

Пример

_.isFinite(3);
// => true
 
_.isFinite(Number.MIN_VALUE);
// => true
 
_.isFinite(Infinity);
// => false
 
_.isFinite('3');
// => false

_.isFunction(value)
source npm package

Проверяет, классифицируется ли value как Function объект.

С версии

0.1.0

Аргументы

  1. value (*): Значение для проверки.

Возвращаемое значение

(boolean): Возвращает true если value является функцией, иначе false.

Пример

_.isFunction(_);
// => true
 
_.isFunction(/abc/);
// => false

_.isInteger(value)
source npm package

Проверяет, является ли value целым числом.

Примечание: Этот метод основан на Number.isInteger.

С версии

4.0.0

Аргументы

  1. value (*): Значение для проверки.

Возвращаемое значение

(boolean): Возвращает true если value является целым числом, иначе false.

Пример

_.isInteger(3);
// => true
 
_.isInteger(Number.MIN_VALUE);
// => false
 
_.isInteger(Infinity);
// => false
 
_.isInteger('3');
// => false

_.isLength(value)
source npm package

Проверяет, является ли value допустимой длиной, подобной массиву.

Примечание: Этот метод слабо основан на ToLength.

С версии

4.0.0

Аргументы

  1. value (*): Значение для проверки.

Возвращаемое значение

(boolean): Возвращает true если value является допустимой длиной, иначе false.

Пример

_.isLength(3);
// => true
 
_.isLength(Number.MIN_VALUE);
// => false
 
_.isLength(Infinity);
// => false
 
_.isLength('3');
// => false

_.isMap(value)
source npm package

Проверяет, классифицируется ли value как Map объект.

С версии

4.3.0

Аргументы

  1. value (*): Значение для проверки.

Возвращаемое значение

(boolean): Возвращает true если value является Map, иначе false.

Пример

_.isMap(new Map);
// => true
 
_.isMap(new WeakMap);
// => false

_.isMatch(object, source)
source npm package

Выполняет частичное глубокое сравнение object и source, чтобы определить, содержит ли object эквивалентные значения свойств.

Примечание: Этот метод эквивалентен _.matches, когда source частично применён.

Частичные сравнения будут соответствовать пустым массивам и пустым объектам source значениям для любого массива или значения объекта соответственно. См. _.isEqual для списка поддерживаемых сравнений значений.

С версии

3.0.0

Аргументы

  1. object (Object): Объект для проверки.
  2. 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])
source npm package

Этот метод похож на _.isMatch, за исключением того, что он принимает customizer, который вызывается для сравнения значений. Если customizer возвращает undefined, сравнения обрабатываются методом вместо этого. customizer вызывается с пятью аргументами: (objValue, srcValue, index|key, object, source).

С версии

4.0.0

Аргументы

  1. object (Object): Объект для проверки.
  2. source (Object): Объект значений свойств для сопоставления.
  3. [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)
source npm package

Проверяет, является ли value NaN.

Примечание: Этот метод основан на Number.isNaN и не совпадает с глобальным isNaN, который возвращает true для undefined и других нечисловых значений.

С версии

0.1.0

Аргументы

  1. value (*): Значение для проверки.

Возвращаемое значение

(boolean): Возвращает true если value является NaN, иначе false.

Пример

_.isNaN(NaN);
// => true
 
_.isNaN(new Number(NaN));
// => true
 

isNaN(undefined);
// => true
 
_.isNaN(undefined);
// => false

_.isNative(value)
source npm package

Проверяет, является ли value первозданной собственной функцией.

Примечание: Этот метод не может надежно определять собственные функции в присутствии пакета core-js, поскольку core-js обходит такое обнаружение. Несмотря на многочисленные запросы, сопровождающий core-js ясно дал понять: любая попытка исправить обнаружение будет заблокирована. В результате у нас остается мало выбора, кроме как выдать ошибку. К сожалению, это также влияет на пакеты, такие как babel-polyfill, которые полагаются на core-js.

С версии

3.0.0

Аргументы

  1. value (*): Значение для проверки.

Возвращаемое значение

(boolean): Возвращает true если value является собственной функцией, иначе false.

Пример

_.isNative(Array.prototype.push);
// => true
 
_.isNative(_);
// => false

_.isNil(value)
source npm package

Проверяет, является ли value null или undefined.

С версии

4.0.0

Аргументы

  1. value (*): Значение для проверки.

Returns

(boolean): Возвращает true если value является nullish, иначе false.

Example

_.isNil(null);
// => true
 
_.isNil(void 0);
// => true
 
_.isNil(NaN);
// => false

_.isNull(value)
source npm package

Проверяет, является ли value null.

Since

0.1.0

Arguments

  1. value (*): Значение для проверки.

Returns

(boolean): Возвращает true если value является null, иначе false.

Example

_.isNull(null);
// => true
 
_.isNull(void 0);
// => false

_.isNumber(value)
source npm package

Проверяет, классифицируется ли value как примитивный тип или объект Number .

Примечание: Для исключения Infinity, -Infinity и NaN, которые классифицируются как числа, используйте метод _.isFinite.

Since

0.1.0

Arguments

  1. value (*): Значение для проверки.

Returns

(boolean): Возвращает true если value является числом, иначе false.

Example

_.isNumber(3);
// => true
 
_.isNumber(Number.MIN_VALUE);
// => true
 
_.isNumber(Infinity);
// => true
 
_.isNumber('3');
// => false

_.isObject(value)
source npm package

Проверяет, является ли value типом языка Object . (например, массивы, функции, объекты, регулярные выражения, new Number(0) и new String(''))

Since

0.1.0

Arguments

  1. value (*): Значение для проверки.

Returns

(boolean): Возвращает true если value является объектом, иначе false.

Example

_.isObject({});
// => true
 
_.isObject([1, 2, 3]);
// => true
 
_.isObject(_.noop);
// => true
 
_.isObject(null);
// => false

_.isObjectLike(value)
source npm package

Проверяет, является ли value похожим на объект. Значение является похожим на объект, если оно не null и имеет typeof результат "object".

Since

4.0.0

Arguments

  1. value (*): Значение для проверки.

Returns

(boolean): Возвращает true если value похож на объект, иначе false.

Example

_.isObjectLike({});
// => true
 
_.isObjectLike([1, 2, 3]);
// => true
 
_.isObjectLike(_.noop);
// => false
 
_.isObjectLike(null);
// => false

_.isPlainObject(value)
source npm package

Проверяет, является ли value простым объектом, то есть объектом, созданным конструктором Object или объектом с [[Prototype]] null.

Since

0.8.0

Arguments

  1. 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)
source npm package

Проверяет, классифицируется ли value как объект RegExp.

Since

0.1.0

Arguments

  1. value (*): Значение для проверки.

Returns

(boolean): Возвращает true если value является регулярным выражением, иначе false.

Example

_.isRegExp(/abc/);
// => true
 
_.isRegExp('/abc/');
// => false

_.isSafeInteger(value)
source npm package

Проверяет, является ли value безопасным целым числом. Целое число является безопасным, если оно является числом двойной точности IEEE-754, которое не является результатом округленного небезопасного целого числа.

Примечание: Этот метод основан на Number.isSafeInteger.

Since

4.0.0

Arguments

  1. value (*): Значение для проверки.

Returns

(boolean): Возвращает true если value является безопасным целым числом, иначе false.

Example

_.isSafeInteger(3);
// => true
 
_.isSafeInteger(Number.MIN_VALUE);
// => false
 
_.isSafeInteger(Infinity);
// => false
 
_.isSafeInteger('3');
// => false

_.isSet(value)
source npm package

Проверяет, классифицируется ли value как объект Set.

Since

4.3.0

Arguments

  1. value (*): Значение для проверки.

Returns

(boolean): Возвращает true если value является множеством, иначе false.

Example

_.isSet(new Set);
// => true
 
_.isSet(new WeakSet);
// => false

_.isString(value)
source npm package

Проверяет, классифицируется ли value как примитивный тип или объект String.

Since

0.1.0

Arguments

  1. value (*): Значение для проверки.

Returns

(boolean): Возвращает true если value является строкой, иначе false.

Example

_.isString('abc');
// => true
 
_.isString(1);
// => false

_.isSymbol(value)
source npm package

Проверяет, классифицируется ли value как примитивный тип или объект Symbol.

Since

4.0.0

Arguments

  1. value (*): Значение для проверки.

Returns

(boolean): Возвращает true если value является символом, иначе false.

Example

_.isSymbol(Symbol.iterator);
// => true
 
_.isSymbol('abc');
// => false

_.isTypedArray(value)
source npm package

Проверяет, классифицируется ли value как типизированный массив.

Since

3.0.0

Arguments

  1. value (*): Значение для проверки.

Returns

(boolean): Возвращает true если value является типизированным массивом, иначе false.

Example

_.isTypedArray(new Uint8Array);
// => true
 
_.isTypedArray([]);
// => false

_.isUndefined(value)
source npm package

Проверяет, является ли value undefined.

Since

0.1.0

Arguments

  1. value (*): Значение для проверки.

Returns

(boolean): Возвращает true если value является undefined, иначе false.

Example

_.isUndefined(void 0);
// => true
 
_.isUndefined(null);
// => false

_.isWeakMap(value)
source npm package

Проверяет, классифицируется ли value как объект WeakMap.

Since

4.3.0

Arguments

  1. value (*): Значение для проверки.

Returns

(boolean): Возвращает true если value является слабой картой, иначе false.

Example

_.isWeakMap(new WeakMap);
// => true
 
_.isWeakMap(new Map);
// => false

_.isWeakSet(value)
source npm package

Проверяет, классифицируется ли value как объект WeakSet.

Since

4.3.0

Arguments

  1. value (*): Значение для проверки.

Returns

(boolean): Возвращает true если value является слабым множеством, иначе false.

Example

_.isWeakSet(new WeakSet);
// => true
 
_.isWeakSet(new Set);
// => false

_.lt(value, other)
source npm package

Проверяет, меньше ли value чем other.

Since

3.9.0

Arguments

  1. value (*): Значение для сравнения.
  2. other (*): Другое значение для сравнения.

Returns

(boolean): Возвращает true если value меньше чем other, иначе false.

Example

_.lt(1, 3);
// => true
 
_.lt(3, 3);
// => false
 
_.lt(3, 1);
// => false

_.lte(value, other)
source npm package

Проверяет, меньше ли value или равно other.

Since

3.9.0

Arguments

  1. value (*): Значение для сравнения.
  2. other (*): Другое значение для сравнения.

Returns

(boolean): Возвращает true если value меньше или равно other, иначе false.

Example

_.lte(1, 3);
// => true
 
_.lte(3, 3);
// => true
 
_.lte(3, 1);
// => false

_.toArray(value)
source npm package

Преобразует value в массив.

Since

0.1.0

Arguments

  1. value (*): Преобразуемое значение.

Returns

(Array): Возвращает преобразованный массив.

Example

_.toArray({ 'a': 1, 'b': 2 });
// => [1, 2]
 
_.toArray('abc');
// => ['a', 'b', 'c']
 
_.toArray(1);
// => []
 
_.toArray(null);
// => []

_.toFinite(value)
source npm package

Преобразует value в конечное число.

Since

4.12.0

Arguments

  1. 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)
source npm package

Преобразует value в целое число.

Примечание: Этот метод слабо основан на ToInteger.

Since

4.0.0

Arguments

  1. value (*): Преобразуемое значение.

Returns

(number): Возвращает преобразованное целое число.

Example

_.toInteger(3.2);
// => 3
 
_.toInteger(Number.MIN_VALUE);
// => 0
 
_.toInteger(Infinity);
// => 1.7976931348623157e+308
 
_.toInteger('3.2');
// => 3

_.toLength(value)
source npm package

Преобразует value в целое число, подходящее для использования в качестве длины массивоподобного объекта.

Примечание: Этот метод основан на ToLength.

Since

4.0.0

Arguments

  1. value (*): Преобразуемое значение.

Returns

(number): Возвращает преобразованное целое число.

Example

_.toLength(3.2);
// => 3
 
_.toLength(Number.MIN_VALUE);
// => 0
 
_.toLength(Infinity);
// => 4294967295
 
_.toLength('3.2');
// => 3

_.toNumber(value)
source npm package

Преобразует value в число.

Since

4.0.0

Arguments

  1. 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)
source npm package

Преобразует value в простой объект, выравнивая унаследованные перечисляемые свойства со строковыми ключами value в собственные свойства простого объекта.

Since

3.0.0

Arguments

  1. 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)
source npm package

Преобразует value в безопасное целое число. Безопасное целое число можно корректно сравнивать и представлять.

Since

4.0.0

Arguments

  1. value (*): Преобразуемое значение.

Returns

(number): Возвращает преобразованное целое число.

Example

_.toSafeInteger(3.2);
// => 3
 
_.toSafeInteger(Number.MIN_VALUE);
// => 0
 
_.toSafeInteger(Infinity);
// => 9007199254740991
 
_.toSafeInteger('3.2');
// => 3

_.toString(value)
source npm package

Преобразует value в строку. Для значений null и undefined возвращается пустая строка. Знак -0 сохраняется.

Since

4.0.0

Arguments

  1. value (*): Преобразуемое значение.

Returns

(string): Возвращает преобразованную строку.

Example

_.toString(null);
// => ''
 
_.toString(-0);
// => '-0'
 
_.toString([1, 2, 3]);
// => '1,2,3'

Методы «Math»

_.add(augend, addend)
source npm package

Складывает два числа.

Since

3.4.0

Arguments

  1. augend (number): Первое число в сложении.
  2. addend (number): Второе число в сложении.

Returns

(number): Возвращает сумму.

Example

_.add(6, 4);
// => 10

_.ceil(number, [precision=0])
source npm package

Вычисляет number, округленное вверх до precision.

Since

3.10.0

Arguments

  1. number (number): Число для округления вверх.
  2. [precision=0] (number): Точность округления вверх.

Returns

(number): Возвращает округленное вверх число.

Example

_.ceil(4.006);
// => 5
 
_.ceil(6.004, 2);
// => 6.01
 
_.ceil(6040, -2);
// => 6100

_.divide(dividend, divisor)
source npm package

Делит два числа.

Since

4.7.0

Arguments

  1. dividend (number): Первое число в делении.
  2. divisor (number): Второе число в делении.

Returns

(number): Возвращает частное.

Example

_.divide(6, 4);
// => 1.5

_.floor(number, [precision=0])
source npm package

Вычисляет number, округленное вниз до precision.

Since

3.10.0

Arguments

  1. number (number): Число для округления вниз.
  2. [precision=0] (number): Точность округления вниз.

Returns

(number): Возвращает округленное вниз число.

Example

_.floor(4.006);
// => 4
 
_.floor(0.046, 2);
// => 0.04
 
_.floor(4060, -2);
// => 4000

_.max(array)
source npm package

Вычисляет максимальное значение array. Если array пуст или ложен, возвращается undefined.

Since

0.1.0

Arguments

  1. array (Array): Массив для итерации.

Returns

(*): Возвращает максимальное значение.

Example

_.max([4, 2, 8, 6]);
// => 8
 
_.max([]);
// => undefined

_.maxBy(array, [iteratee=_.identity])
source npm package

Этот метод похож на _.max, за исключением того, что он принимает iteratee, который вызывается для каждого элемента в array для генерации критерия, по которому ранжируется значение. Итератор вызывается с одним аргументом: (value).

Since

4.0.0

Arguments

  1. array (Array): Массив для итерации.
  2. [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)
source npm package

Вычисляет среднее значение элементов в array.

Since

4.0.0

Arguments

  1. array (Array): Массив для итерации.

Returns

(number): Возвращает среднее значение.

Example

_.mean([4, 2, 8, 6]);
// => 5

_.meanBy(array, [iteratee=_.identity])
source npm package

Этот метод похож на _.mean, за исключением того, что он принимает iteratee, который вызывается для каждого элемента в array для генерации значения, которое нужно усреднить. Итератор вызывается с одним аргументом: (value).

Since

4.7.0

Arguments

  1. array (Array): Массив для итерации.
  2. [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)
source npm package

Вычисляет минимальное значение array. Если array пуст или ложен, возвращается undefined.

Since

0.1.0

Arguments

  1. array (Array): Массив для итерации.

Returns

(*): Возвращает минимальное значение.

Example

_.min([4, 2, 8, 6]);
// => 2
 
_.min([]);
// => undefined

_.minBy(array, [iteratee=_.identity])
source npm package

Этот метод похож на _.min, за исключением того, что он принимает iteratee, который вызывается для каждого элемента в array для генерации критерия, по которому ранжируется значение. Итератор вызывается с одним аргументом: (value).

Since

4.0.0

Arguments

  1. array (Array): Массив для итерации.
  2. [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)
source npm package

Умножает два числа.

Since

4.7.0

Arguments

  1. multiplier (number): Первое число в умножении.
  2. multiplicand (number): Второе число в умножении.

Returns

(number): Возвращает произведение.

Example

_.multiply(6, 4);
// => 24

_.round(number, [precision=0])
source npm package

Вычисляет number округленное до precision.

Since

3.10.0

Arguments

  1. number (number): Число для округления.
  2. [precision=0] (number): Точность округления.

Returns

(number): Возвращает округленное число.

Example

_.round(4.006);
// => 4
 
_.round(4.006, 2);
// => 4.01
 
_.round(4060, -2);
// => 4100

_.subtract(minuend, subtrahend)
source npm package

Вычитает два числа.

Since

4.0.0

Arguments

  1. minuend (number): Первое число в вычитании.
  2. subtrahend (number): Второе число в вычитании.

Returns

(number): Возвращает разность.

Example

_.subtract(6, 4);
// => 2

_.sum(array)
source npm package

Вычисляет сумму значений в array.

Since

3.4.0

Arguments

  1. array (Array): Массив для итерации.

Returns

(number): Возвращает сумму.

Example

_.sum([4, 2, 8, 6]);
// => 20

_.sumBy(array, [iteratee=_.identity])
source npm package

Этот метод похож на _.sum, за исключением того, что он принимает iteratee, который вызывается для каждого элемента в array для генерации значения, которое будет суммироваться. Итератор вызывается с одним аргументом: (value).

Since

4.0.0

Arguments

  1. array (Array): Массив для итерации.
  2. [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)
source npm package

Зажимает number в пределах включающих lower и upper границ.

Since

4.0.0

Arguments

  1. number (number): Число для зажима.
  2. [lower] (number): Нижняя граница.
  3. upper (number): Верхняя граница.

Returns

(number): Возвращает зажатое число.

Example

_.clamp(-10, -5, 5);
// => -5
 
_.clamp(10, -5, 5);
// => 5

_.inRange(number, [start=0], end)
source npm package

Проверяет, находится ли n между start и до, но не включая, end. Если end не указан, он устанавливается в start с start затем устанавливается в 0. Если start больше, чем end, параметры меняются местами для поддержки отрицательных диапазонов.

Since

3.3.0

Arguments

  1. number (number): Число для проверки.
  2. [start=0] (number): Начало диапазона.
  3. 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])
source npm package

Генерирует случайное число между включающими lower и upper границами. Если предоставлен только один аргумент, возвращается число между 0 и заданным числом. Если floating является true, или lower или upper являются числами с плавающей запятой, возвращается число с плавающей запятой вместо целого числа.

Примечание: JavaScript следует стандарту IEEE-754 для разрешения значений с плавающей запятой, что может привести к неожиданным результатам.

Since

0.7.0

Arguments

  1. [lower=0] (number): Нижняя граница.
  2. [upper=1] (number): Верхняя граница.
  3. [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])
source npm package

Назначает собственные перечисляемые свойства строковых ключей исходных объектов целевому объекту. Исходные объекты применяются слева направо. Последующие источники перезаписывают назначения свойств предыдущих источников.

Примечание: Этот метод изменяет object и слабо основан на Object.assign.

Since

0.10.0

Arguments

  1. object (Object): Целевой объект.
  2. [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])
source npm package

Этот метод похож на _.assign, за исключением того, что он итерирует собственные и унаследованные свойства источника.

Примечание: Этот метод изменяет object.

Since

4.0.0

Aliases

_.extend

Arguments

  1. object (Object): Целевой объект.
  2. [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])
source npm package

Этот метод похож на _.assignIn, за исключением того, что он принимает customizer, который вызывается для получения назначенных значений. Если customizer возвращает undefined, обработка назначения осуществляется методом. customizer вызывается с пятью аргументами: (objValue, srcValue, key, object, source).

Примечание: Этот метод изменяет object.

Since

4.0.0

Aliases

_.extendWith

Arguments

  1. object (Object): Целевой объект.
  2. sources (...Object): Исходные объекты.
  3. [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])
source npm package

Этот метод похож на _.assign, за исключением того, что он принимает customizer, который вызывается для получения назначенных значений. Если customizer возвращает undefined, обработка назначения осуществляется методом. customizer вызывается с пятью аргументами: (objValue, srcValue, key, object, source).

Примечание: Этот метод изменяет object.

Since

4.0.0

Arguments

  1. object (Object): Целевой объект.
  2. sources (...Object): Исходные объекты.
  3. [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])
source npm package

Создает массив значений, соответствующих paths из object.

Since

1.0.0

Arguments

  1. object (Object): Объект для итерации.
  2. [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])
source npm package

Создает объект, который наследуется от объекта prototype. Если задан объект properties, его собственные перечисляемые свойства строковых ключей назначаются созданному объекту.

Since

2.3.0

Arguments

  1. prototype (Object): Объект для наследования.
  2. [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])
source npm package

Присваивает собственные и унаследованные перечисляемые свойства строковых ключей исходных объектов целевому объекту для всех свойств назначения, которые соответствуют undefined. Исходные объекты применяются слева направо. После установки свойства дополнительные значения того же свойства игнорируются.

Примечание: Этот метод изменяет object.

Since

0.1.0

Arguments

  1. object (Object): Целевой объект.
  2. [sources] (...Object): Исходные объекты.

Returns

(Object): Возвращает object.

Example

_.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });
// => { 'a': 1, 'b': 2 }

_.defaultsDeep(object, [sources])
source npm package

Этот метод похож на _.defaults, за исключением того, что он рекурсивно присваивает свойства по умолчанию.

Примечание: Этот метод изменяет object.

Since

3.10.0

Arguments

  1. object (Object): Целевой объект.
  2. [sources] (...Object): Исходные объекты.

Returns

(Object): Возвращает object.

Example

_.defaultsDeep({ 'a': { 'b': 2 } }, { 'a': { 'b': 1, 'c': 3 } });
// => { 'a': { 'b': 2, 'c': 3 } }

_.findKey(object, [predicate=_.identity])
source npm package

Этот метод похож на _.find, за исключением того, что он возвращает ключ первого элемента, predicate возвращает истинное значение вместо самого элемента.

Since

1.1.0

Arguments

  1. object (Object): Объект для проверки.
  2. [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])
source npm package

Этот метод похож на _.findKey, за исключением того, что он перебирает элементы коллекции в обратном порядке.

Since

2.0.0

Arguments

  1. object (Object): Объект для проверки.
  2. [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])
source npm package

Перебирает собственные и унаследованные перечисляемые свойства строковых ключей объекта и вызывает iteratee для каждого свойства. Функция iteratee вызывается с тремя аргументами: (value, key, object). Функции iteratee могут досрочно завершить итерацию, явно вернув false.

Since

0.3.0

Arguments

  1. object (Object): Объект для итерации.
  2. [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])
source npm package

Этот метод похож на _.forIn, за исключением того, что он перебирает свойства object в обратном порядке.

Since

2.0.0

Arguments

  1. object (Object): Объект для итерации.
  2. [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])
source npm package

Перебирает собственные перечисляемые свойства строковых ключей объекта и вызывает iteratee для каждого свойства. Функция iteratee вызывается с тремя аргументами: (value, key, object). Функции iteratee могут досрочно завершить итерацию, явно вернув false.

Since

0.3.0

Arguments

  1. object (Object): Объект для итерации.
  2. [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])
source npm package

Этот метод похож на _.forOwn, за исключением того, что он перебирает свойства object в обратном порядке.

Since

2.0.0

Arguments

  1. object (Object): Объект для итерации.
  2. [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)
source npm package

Создает массив имен свойств-функций из собственных перечисляемых свойств object.

Since

0.1.0

Arguments

  1. 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)
source npm package

Создает массив имен свойств-функций из собственных и унаследованных перечисляемых свойств object.

Since

4.0.0

Arguments

  1. 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])
source npm package

Получает значение по path object. Если полученное значение undefined, то вместо него возвращается defaultValue.

Since

3.7.0

Arguments

  1. object (Object): Объект для запроса.
  2. path (Array|string): Путь к свойству для получения.
  3. [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)
source npm package

Проверяет, является ли path прямым свойством object.

Since

0.1.0

Arguments

  1. object (Object): Объект для запроса.
  2. 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)
source npm package

Проверяет, является ли path прямым или унаследованным свойством object.

Since

4.0.0

Arguments

  1. object (Object): Объект для запроса.
  2. 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)
source npm package

Создает объект, составленный из инвертированных ключей и значений object. Если object содержит повторяющиеся значения, последующие значения перезаписывают присваивания свойств предыдущих значений.

Since

0.7.0

Arguments

  1. object (Object): Объект для инвертирования.

Returns

(Object): Возвращает новый инвертированный объект.

Example

var object = { 'a': 1, 'b': 2, 'c': 1 };
 
_.invert(object);
// => { '1': 'c', '2': 'b' }

_.invertBy(object, [iteratee=_.identity])
source npm package

Этот метод похож на _.invert, за исключением того, что инвертированный объект создаётся из результатов выполнения каждого элемента object через iteratee. Соответствующее инвертированное значение каждого инвертированного ключа — это массив ключей, ответственных за генерацию инвертированного значения. Итерируемая функция вызывается с одним аргументом: (value).

Since

4.1.0

Arguments

  1. object (Object): Объект для инвертирования.
  2. [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])
source npm package

Вызывает метод по path object.

Since

4.0.0

Arguments

  1. object (Object): Объект для запроса.
  2. path (Array|string): Путь к методу для вызова.
  3. [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)
source npm package

Создаёт массив собственных перечисляемых имён свойств object.

Примечание: Необъектные значения принудительно преобразуются в объекты. См. спецификацию ES для получения более подробной информации.

Since

0.1.0

Arguments

  1. 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)
source npm package

Создаёт массив собственных и унаследованных перечисляемых имён свойств object.

Примечание: Необъектные значения принудительно преобразуются в объекты.

Since

3.0.0

Arguments

  1. 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])
source npm package

Противоположность _.mapValues; этот метод создаёт объект с теми же значениями, что и object, и ключами, сгенерированными путём прохождения каждого собственного перечисляемого свойства со строковым ключом object через iteratee. Итерируемая функция вызывается с тремя аргументами: (value, key, object).

Since

3.8.0

Arguments

  1. object (Object): Объект для итерации.
  2. [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])
source npm package

Создаёт объект с теми же ключами, что и object, и значениями, сгенерированными путём прохождения каждого собственного перечисляемого свойства со строковым ключом object через iteratee. Итерируемая функция вызывается с тремя аргументами:
(value, key, object).

Since

2.4.0

Arguments

  1. object (Object): Объект для итерации.
  2. [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])
source npm package

Этот метод похож на _.assign, за исключением того, что он рекурсивно объединяет собственные и унаследованные перечисляемые свойства со строковыми ключами из исходных объектов в целевой объект. Свойства источника, которые разрешаются в undefined, пропускаются, если существует значение назначения. Свойства массивов и простых объектов объединяются рекурсивно. Другие объекты и типы значений переопределяются присваиванием. Объекты источника применяются слева направо. Последующие источники перезаписывают присваивания свойств предыдущих источников.

Примечание: Этот метод изменяет object.

Since

0.5.0

Arguments

  1. object (Object): Целевой объект.
  2. [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)
source npm package

Этот метод похож на _.merge, за исключением того, что он принимает customizer, который вызывается для получения объединённых значений свойств назначения и источника. Если customizer возвращает undefined, обработка слияния выполняется методом. customizer вызывается с шестью аргументами:
(objValue, srcValue, key, object, source, stack).

Примечание: Этот метод изменяет object.

Since

4.0.0

Arguments

  1. object (Object): Целевой объект.
  2. sources (...Object): Исходные объекты.
  3. 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])
source npm package

Противоположность _.pick; этот метод создаёт объект, состоящий из собственных и унаследованных перечисляемых путей свойств object, которые не опущены.

Примечание: Этот метод значительно медленнее, чем _.pick.

Since

0.1.0

Arguments

  1. object (Object): Исходный объект.
  2. [paths] (...(string|string[])): Пути свойств для пропуска.

Returns

(Object): Возвращает новый объект.

Example

var object = { 'a': 1, 'b': '2', 'c': 3 };
 
_.omit(object, ['a', 'c']);
// => { 'b': '2' }

_.omitBy(object, [predicate=_.identity])
source npm package

Противоположность _.pickBy; этот метод создаёт объект, состоящий из собственных и унаследованных перечисляемых свойств со строковыми ключами object, для которых predicate не возвращает истинное значение. Предикат вызывается с двумя аргументами: (value, key).

Since

4.0.0

Arguments

  1. object (Object): Исходный объект.
  2. [predicate=_.identity] (Function): Функция, вызываемая для каждого свойства.

Returns

(Object): Возвращает новый объект.

Example

var object = { 'a': 1, 'b': '2', 'c': 3 };
 
_.omitBy(object, _.isNumber);
// => { 'b': '2' }

_.pick(object, [paths])
source npm package

Создаёт объект, состоящий из выбранных свойств object.

Since

0.1.0

Arguments

  1. object (Object): Исходный объект.
  2. [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])
source npm package

Создаёт объект, состоящий из свойств object, для которых predicate возвращает истинное значение. Предикат вызывается с двумя аргументами: (value, key).

Since

4.0.0

Arguments

  1. object (Object): Исходный объект.
  2. [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])
source npm package

Этот метод похож на _.get, за исключением того, что если разрешённое значение является функцией, она вызывается со связыванием this родительского объекта, и возвращается его результат.

Since

0.1.0

Arguments

  1. object (Object): Объект для запроса.
  2. path (Array|string): Путь к свойству для разрешения.
  3. [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)
source npm package

Устанавливает значение в path object. Если часть path не существует, она создается. Массивы создаются для отсутствующих индексных свойств, а объекты — для всех остальных отсутствующих свойств. Используйте _.setWith для настройки создания path.

Примечание: Этот метод изменяет object.

Since

3.7.0

Arguments

  1. object (Object): Объект для изменения.
  2. path (Array|string): Путь к устанавливаемому свойству.
  3. 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])
source npm package

Этот метод похож на _.set, за исключением того, что он принимает customizer, который вызывается для создания объектов path. Если customizer возвращает undefined, обработка создания пути осуществляется методом вместо этого. customizer вызывается с тремя аргументами: (nsValue, key, nsObject).

Примечание: Этот метод изменяет object.

Since

4.0.0

Arguments

  1. object (Object): Объект для изменения.
  2. path (Array|string): Путь к устанавливаемому свойству.
  3. value (*): Устанавливаемое значение.
  4. [customizer] (Function): Функция для настройки присваиваемых значений.

Returns

(Object): Возвращает object.

Example

var object = {};
 
_.setWith(object, '[0][1]', 'a', Object);
// => { '0': { '1': 'a' } }

_.toPairs(object)
source npm package

Создает массив собственных перечисляемых пар «ключ-значение» со строковыми ключами для object, которые могут быть использованы _.fromPairs. Если object является отображением или множеством, возвращаются его записи.

Since

4.0.0

Aliases

_.entries

Arguments

  1. 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)
source npm package

Создает массив собственных и унаследованных перечисляемых пар «ключ-значение» со строковыми ключами для object, которые могут быть использованы _.fromPairs. Если object является отображением или множеством, возвращаются его записи.

Since

4.0.0

Aliases

_.entriesIn

Arguments

  1. 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])
source npm package

Альтернатива _.reduce; этот метод преобразует object в новый объект accumulator, который является результатом прогона каждого из его собственных перечисляемых свойств со строковыми ключами через iteratee, при этом каждое вызова может потенциально изменять объект accumulator. Если accumulator не предоставлен, будет использоваться новый объект с тем же [[Prototype]]. Итерируемая функция вызывается с четырьмя аргументами: (accumulator, value, key, object). Функции итератора могут досрочно завершить итерацию, явно возвращая false.

Since

1.3.0

Arguments

  1. object (Object): Объект для итерации.
  2. [iteratee=_.identity] (Function): Функция, вызываемая на каждой итерации.
  3. [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)
source npm package

Удаляет свойство по path object.

Примечание: Этот метод изменяет object.

Since

4.0.0

Arguments

  1. object (Object): Объект для изменения.
  2. 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)
source npm package

Этот метод похож на _.set, за исключением того, что принимает updater для получения значения для установки. Используйте _.updateWith для настройки создания path. updater вызывается с одним аргументом: (value).

Примечание: Этот метод изменяет object.

Since

4.6.0

Arguments

  1. object (Object): Объект для изменения.
  2. path (Array|string): Путь к устанавливаемому свойству.
  3. 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])
source npm package

Этот метод похож на _.update, за исключением того, что он принимает customizer, который вызывается для создания объектов path. Если customizer возвращает undefined, обработка создания пути осуществляется методом вместо этого. customizer вызывается с тремя аргументами: (nsValue, key, nsObject).

Примечание: Этот метод изменяет object.

Since

4.6.0

Arguments

  1. object (Object): Объект для изменения.
  2. path (Array|string): Путь к устанавливаемому свойству.
  3. updater (Function): Функция для получения обновленного значения.
  4. [customizer] (Function): Функция для настройки присваиваемых значений.

Returns

(Object): Возвращает object.

Example

var object = {};
 
_.updateWith(object, '[0][1]', _.constant('a'), Object);
// => { '0': { '1': 'a' } }

_.values(object)
source npm package

Создает массив собственных перечисляемых значений свойств со строковыми ключами object.

Примечание: Необъектные значения принудительно преобразуются в объекты.

Since

0.1.0

Arguments

  1. 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)
source npm package

Создает массив собственных и унаследованных перечисляемых значений свойств со строковыми ключами object.

Примечание: Необъектные значения принудительно преобразуются в объекты.

Since

3.0.0

Arguments

  1. 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.

Аргументы

  1. 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

  1. 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

  1. value (*): Значение для предоставления interceptor.
  2. 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)

Since

3.0.0

Arguments

  1. value (*): Значение для предоставления interceptor.
  2. 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)

Since

1.0.0

Arguments

  1. [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

  1. 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)

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=''])
source npm package

Преобразует string в camel case.

Since

3.0.0

Arguments

  1. [string=''] (string): Строка для преобразования.

Returns

(string): Возвращает строку в формате camel case.

Example

_.camelCase('Foo Bar');
// => 'fooBar'
 
_.camelCase('--foo-bar--');
// => 'fooBar'
 
_.camelCase('__FOO_BAR__');
// => 'fooBar'

_.capitalize([string=''])
source npm package

Преобразует первый символ string в верхний регистр, а остальные — в нижний регистр.

Since

3.0.0

Arguments

  1. [string=''] (string): Строка для преобразования в заглавный регистр.

Returns

(string): Возвращает строку с заглавной буквой.

Example

_.capitalize('FRED');
// => 'Fred'

_.deburr([string=''])
source npm package

Удаляет диакритические знаки из string, преобразуя буквы Latin-1 Supplement и Latin Extended-A в базовые латинские буквы и удаляя диакритические знаки.

Since

3.0.0

Arguments

  1. [string=''] (string): Строка, из которой нужно удалить диакритические знаки.

Returns

(string): Возвращает строку без диакритических знаков.

Example

_.deburr('déjà vu');
// => 'deja vu'

_.endsWith([string=''], [target], [position=string.length])
source npm package

Проверяет, заканчивается ли string заданной целевой строкой.

Since

3.0.0

Arguments

  1. [string=''] (string): Строка для проверки.
  2. [target] (string): Строка для поиска.
  3. [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=''])
source npm package

Преобразует символы "&", "<", ">", '"', и "'" в string в их соответствующие HTML-сущности.

Примечание: Другие символы не экранируются. Для экранирования дополнительных символов используйте стороннюю библиотеку, например, he.

Хотя символ ">" экранируется для симметрии, символы, подобные ">" и "/", не нуждаются в экранировании в HTML и не имеют особого значения, если они не являются частью тега или неквотированного значения атрибута. См. статью Матиаса Байненса (в разделе "semi-related fun fact") для получения более подробной информации.

При работе с HTML всегда следует кавычки в значениях атрибутов, чтобы уменьшить векторы XSS.

Since

0.1.0

Arguments

  1. [string=''] (string): Строка для экранирования.

Returns

(string): Возвращает экранированную строку.

Example

_.escape('fred, barney, & pebbles');
// => 'fred, barney, &amp; pebbles'

_.escapeRegExp([string=''])
source npm package

Экранирует специальные символы RegExp "^", "$", "", ".", "*", "+", "?", "(", ")", "[", "]", "{", "}", и "|" в string.

Since

3.0.0

Arguments

  1. [string=''] (string): Строка для экранирования.

Returns

(string): Возвращает экранированную строку.

Example

_.escapeRegExp('[lodash](https://lodash.com/)');
// => '\[lodash\]\(https://lodash\.com/\)'

_.kebabCase([string=''])
source npm package

Преобразует string в kebab case.

Since

3.0.0

Arguments

  1. [string=''] (string): Строка для преобразования.

Returns

(string): Возвращает строку в формате kebab case.

Example

_.kebabCase('Foo Bar');
// => 'foo-bar'
 
_.kebabCase('fooBar');
// => 'foo-bar'
 
_.kebabCase('__FOO_BAR__');
// => 'foo-bar'

_.lowerCase([string=''])
source npm package

Преобразует string, как слова, разделённые пробелами, в нижний регистр.

Since

4.0.0

Arguments

  1. [string=''] (string): Строка для преобразования.

Returns

(string): Возвращает строку в нижнем регистре.

Example

_.lowerCase('--Foo-Bar--');
// => 'foo bar'
 
_.lowerCase('fooBar');
// => 'foo bar'
 
_.lowerCase('__FOO_BAR__');
// => 'foo bar'

_.lowerFirst([string=''])
source npm package

Преобразует первый символ string в нижний регистр.

Since

4.0.0

Arguments

  1. [string=''] (string): Строка для преобразования.

Returns

(string): Возвращает преобразованную строку.

Example

_.lowerFirst('Fred');
// => 'fred'
 
_.lowerFirst('FRED');
// => 'fRED'

_.pad([string=''], [length=0], [chars=' '])
source npm package

Добавляет string слева и справа, если она короче, чем length. Символы заполнения усекаются, если их нельзя равномерно разделить на length.

Since

3.0.0

Arguments

  1. [string=''] (string): Строка для заполнения.
  2. [length=0] (number): Длина заполнения.
  3. [chars=' '] (string): Строка, используемая в качестве заполнения.

Returns

(string): Возвращает заполненную строку.

Example

_.pad('abc', 8);
// => '  abc   '
 
_.pad('abc', 8, '_-');
// => '_-abc_-_'
 
_.pad('abc', 3);
// => 'abc'

_.padEnd([string=''], [length=0], [chars=' '])
source npm package

Добавляет string справа, если она короче, чем length. Символы заполнения усекаются, если они превышают length.

Since

4.0.0

Arguments

  1. [string=''] (string): Строка для заполнения.
  2. [length=0] (number): Длина заполнения.
  3. [chars=' '] (string): Строка, используемая в качестве заполнения.

Returns

(string): Возвращает заполненную строку.

Example

_.padEnd('abc', 6);
// => 'abc   '
 
_.padEnd('abc', 6, '_-');
// => 'abc_-_'
 
_.padEnd('abc', 3);
// => 'abc'

_.padStart([string=''], [length=0], [chars=' '])
source npm package

Добавляет string слева, если она короче, чем length. Символы заполнения усекаются, если они превышают length.

Since

4.0.0

Arguments

  1. [string=''] (string): Строка для заполнения.
  2. [length=0] (number): Длина заполнения.
  3. [chars=' '] (string): Строка, используемая в качестве заполнения.

Returns

(string): Возвращает заполненную строку.

Example

_.padStart('abc', 6);
// => '   abc'
 
_.padStart('abc', 6, '_-');
// => '_-_abc'
 
_.padStart('abc', 3);
// => 'abc'

_.parseInt(string, [radix=10])
source npm package

Преобразует string в целое число указанной системы счисления. Если radix является undefined или 0, используется radix из 10, если только value не является шестнадцатеричным, в этом случае используется radix из 16.

Примечание: Этот метод согласуется с реализацией ES5 parseInt.

Since

1.1.0

Arguments

  1. string (string): Строка для преобразования.
  2. [radix=10] (number): Основание системы счисления для интерпретации value.

Returns

(number): Возвращает преобразованное целое число.

Example

_.parseInt('08');
// => 8
 
_.map(['6', '08', '10'], _.parseInt);
// => [6, 8, 10]

_.repeat([string=''], [n=1])
source npm package

Повторяет заданную строку n раз.

Since

3.0.0

Arguments

  1. [string=''] (string): Строка для повторения.
  2. [n=1] (number): Количество раз, которое необходимо повторить строку.

Returns

(string): Возвращает повторенную строку.

Example

_.repeat('*', 3);
// => '***'
 
_.repeat('abc', 2);
// => 'abcabc'
 
_.repeat('abc', 0);
// => ''

_.replace([string=''], pattern, replacement)
source npm package

Заменяет совпадения для pattern в string на replacement.

Примечание: Этот метод основан на String#replace.

Since

4.0.0

Arguments

  1. [string=''] (string): Строка для изменения.
  2. pattern (RegExp|string): Шаблон для замены.
  3. replacement (Function|string): Замена совпадения.

Returns

(string): Возвращает измененную строку.

Example

_.replace('Hi Fred', 'Fred', 'Barney');
// => 'Hi Barney'

_.snakeCase([string=''])
source npm package

Преобразует string в snake case.

Since

3.0.0

Arguments

  1. [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])
source npm package

Разделяет string по separator.

Примечание: Этот метод основан на String#split.

Since

4.0.0

Arguments

  1. [string=''] (string): Строка для разделения.
  2. separator (RegExp|string): Шаблон разделителя для разделения.
  3. [limit] (number): Длина для усечения результатов.

Returns

(Array): Возвращает сегменты строки.

Example

_.split('a-b-c', '-', 2);
// => ['a', 'b']

_.startCase([string=''])
source npm package

Преобразует string в start case.

Since

3.1.0

Arguments

  1. [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])
source npm package

Проверяет, начинается ли string с заданной целевой строки.

Since

3.0.0

Arguments

  1. [string=''] (string): Строка для проверки.
  2. [target] (string): Строка для поиска.
  3. [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={}])
source npm package

Создает скомпилированную функцию шаблона, которая может интерполировать свойства данных в разделителях "interpolate", экранировать HTML-интерполированные свойства данных в разделителях "escape" и выполнять JavaScript в разделителях "evaluate". Свойства данных могут быть доступны как свободные переменные в шаблоне. Если задан объект параметров, он имеет приоритет над значениями _.templateSettings.

Примечание: В отладочной сборке _.template использует sourceURLs для упрощения отладки.

Для получения дополнительной информации о предварительной компиляции шаблонов см. документацию по пользовательским сборкам lodash.

Для получения дополнительной информации о песочницах расширений Chrome см. документацию по расширениям Chrome.

Since

0.1.0

Arguments

  1. [string=''] (string): Строка шаблона.
  2. [options={}] (Object): Объект параметров.
  3. [options.escape=_.templateSettings.escape] (RegExp): Разделитель HTML "escape".
  4. [options.evaluate=_.templateSettings.evaluate] (RegExp): Разделитель "evaluate".
  5. [options.imports=_.templateSettings.imports] (Object): Объект для импорта в шаблон как свободные переменные.
  6. [options.interpolate=_.templateSettings.interpolate] (RegExp): Разделитель "interpolate".
  7. [options.sourceURL='lodash.templateSources[n]'] (string): sourceURL скомпилированной функции шаблона.
  8. [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>&amplt;script&ampgt;</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=''])
source npm package

Преобразует string, целиком, в нижний регистр, как и String#toLowerCase.

Since

4.0.0

Arguments

  1. [string=''] (string): Строка для преобразования.

Returns

(string): Возвращает строку в нижнем регистре.

Example

_.toLower('--Foo-Bar--');
// => '--foo-bar--'
 
_.toLower('fooBar');
// => 'foobar'
 
_.toLower('__FOO_BAR__');
// => '__foo_bar__'

_.toUpper([string=''])
source npm package

Преобразует string, целиком, в верхний регистр, как и String#toUpperCase.

Since

4.0.0

Arguments

  1. [string=''] (string): Строка для преобразования.

Returns

(string): Возвращает строку в верхнем регистре.

Example

_.toUpper('--foo-bar--');
// => '--FOO-BAR--'
 
_.toUpper('fooBar');
// => 'FOOBAR'
 
_.toUpper('__foo_bar__');
// => '__FOO_BAR__'

_.trim([string=''], [chars=whitespace])
source npm package

Удаляет ведущие и завершающие пробелы или указанные символы из string.

Since

3.0.0

Arguments

  1. [string=''] (string): Строка для обрезки.
  2. [chars=whitespace] (string): Символы для обрезки.

Returns

(string): Возвращает обрезанную строку.

Example

_.trim('  abc  ');
// => 'abc'
 
_.trim('-_-abc-_-', '_-');
// => 'abc'
 
_.map(['  foo  ', '  bar  '], _.trim);
// => ['foo', 'bar']

_.trimEnd([string=''], [chars=whitespace])
source npm package

Удаляет завершающие пробелы или указанные символы из string.

Since

4.0.0

Arguments

  1. [string=''] (string): Строка для обрезки.
  2. [chars=whitespace] (string): Символы для обрезки.

Returns

(string): Возвращает обрезанную строку.

Example

_.trimEnd('  abc  ');
// => '  abc'
 
_.trimEnd('-_-abc-_-', '_-');
// => '-_-abc'

_.trimStart([string=''], [chars=whitespace])
source npm package

Удаляет ведущие пробелы или указанные символы из string.

Since

4.0.0

Arguments

  1. [string=''] (string): Строка для обрезки.
  2. [chars=whitespace] (string): Символы для обрезки.

Returns

(string): Возвращает обрезанную строку.

Example

_.trimStart('  abc  ');
// => 'abc  '
 
_.trimStart('-_-abc-_-', '_-');
// => 'abc-_-'

_.truncate([string=''], [options={}])
source npm package

Усекает string, если она длиннее заданной максимальной длины строки. Последние символы усеченной строки заменяются строкой пропуска, которая по умолчанию равна "...".

Since

4.0.0

Arguments

  1. [string=''] (string): Строка для усечения.
  2. [options={}] (Object): Объект параметров.
  3. [options.length=30] (number): Максимальная длина строки.
  4. [options.omission='...'] (string): Строка для указания того, что текст опущен.
  5. [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=''])
source npm package

Обратное _.escape; этот метод преобразует HTML-сущности &ampamp;, &amplt;, &ampgt;, &ampquot;, и &amp#39; в string в их соответствующие символы.

Примечание: Другие HTML-сущности не раскодируются. Чтобы раскодировать дополнительные HTML-сущности, используйте стороннюю библиотеку, например he.

Since

0.6.0

Arguments

  1. [string=''] (string): Строка для раскодирования.

Returns

(string): Возвращает раскодированную строку.

Example

_.unescape('fred, barney, &amp; pebbles');
// => 'fred, barney, & pebbles'

_.upperCase([string=''])
source npm package

Преобразует string, как слова, разделенные пробелами, в верхний регистр.

Since

4.0.0

Arguments

  1. [string=''] (string): Строка для преобразования.

Returns

(string): Возвращает строку в верхнем регистре.

Example

_.upperCase('--foo-bar');
// => 'FOO BAR'
 
_.upperCase('fooBar');
// => 'FOO BAR'
 
_.upperCase('__foo_bar__');
// => 'FOO BAR'

_.upperFirst([string=''])
source npm package

Преобразует первый символ string в верхний регистр.

Since

4.0.0

Arguments

  1. [string=''] (string): Строка для преобразования.

Returns

(string): Возвращает преобразованную строку.

Example

_.upperFirst('fred');
// => 'Fred'
 
_.upperFirst('FRED');
// => 'FRED'

_.words([string=''], [pattern])
source npm package

Разделяет string на массив его слов.

Since

3.0.0

Arguments

  1. [string=''] (string): Строка для проверки.
  2. [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])
source npm package

Пытается вызвать func, возвращая либо результат, либо перехваченный объект ошибки. Все дополнительные аргументы предоставляются func при его вызове.

Since

3.0.0

Arguments

  1. func (Function): Функция для попытки.
  2. [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)
source npm package

Привязывает методы объекта к самому объекту, перезаписывая существующий метод.

Примечание: Этот метод не устанавливает свойство «length» привязанных функций.

Since

0.1.0

Arguments

  1. object (Object): Объект для привязки и присваивания привязанных методов.
  2. 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)
source npm package

Создает функцию, которая итерирует по pairs и вызывает соответствующую функцию первого предиката, который возвращает истинное значение. Пары предикат-функция вызываются с привязкой this и аргументами созданной функции.

Since

4.0.0

Arguments

  1. 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 npm package

Создает функцию, которая вызывает свойства-предикаты source с соответствующими значениями свойств данного объекта, возвращая true, если все предикаты возвращают истинное значение, иначе false.

Примечание: Созданная функция эквивалентна _.conformsTo с частично примененным source.

Since

4.0.0

Arguments

  1. 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)
source npm package

Создает функцию, которая возвращает value.

Since

2.4.0

Arguments

  1. 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)
source npm package

Проверяет value, чтобы определить, следует ли возвращать значение по умолчанию вместо него. defaultValue возвращается, если value является NaN, null, или undefined.

Since

4.14.0

Arguments

  1. value (*): Значение для проверки.
  2. defaultValue (*): Значение по умолчанию.

Returns

(*): Возвращает решенное значение.

Example

_.defaultTo(1, 10);
// => 1
 
_.defaultTo(undefined, 10);
// => 10

_.flow([funcs])
source npm package

Создает функцию, которая возвращает результат вызова заданных функций с привязкой this созданной функции, где каждый последующий вызов получает возвращаемое значение предыдущего.

Since

3.0.0

Arguments

  1. [funcs] (...(Function|Function[])): Функции для вызова.

Returns

(Function): Возвращает новую составную функцию.

Example

function square(n) {
  return n * n;
}
 

var addSquare = _.flow([_.add, square]);

addSquare(1, 2);
// => 9

_.flowRight([funcs])
source npm package

Этот метод похож на _.flow, за исключением того, что он создает функцию, которая вызывает заданные функции справа налево.

Since

3.0.0

Arguments

  1. [funcs] (...(Function|Function[])): Функции для вызова.

Returns

(Функция): Возвращает новую составную функцию.

Пример

function square(n) {
  return n * n;
}
 

var addSquare = _.flowRight([square, _.add]);

addSquare(1, 2);
// => 9

_.identity(value)
source npm package

Этот метод возвращает первый полученный аргумент.

С версии

0.1.0

Аргументы

  1. value (*): Любое значение.

Возвращает

(*): Возвращает value.

Пример

var object = { 'a': 1 };
 

console.log(_.identity(object) === object);
// => true

_.iteratee([func=_.identity])
source npm package

Создает функцию, которая вызывает func с аргументами созданной функции. Если func является именем свойства, созданная функция возвращает значение свойства для данного элемента. Если func является массивом или объектом, созданная функция возвращает true для элементов, содержащих эквивалентные исходные свойства, в противном случае она возвращает false.

С версии

4.0.0

Аргументы

  1. [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 npm package

Создает функцию, которая выполняет частичное глубокое сравнение между заданным объектом и source, возвращая true, если заданный объект имеет эквивалентные значения свойств, иначе false.

Примечание: Созданная функция эквивалентна _.isMatch с частично примененным source.

Частичные сравнения будут сопоставлять значения пустого массива и пустого объекта source с любым значением массива или объекта соответственно. См. _.isEqual для списка поддерживаемых сравнений значений.

С версии

3.0.0

Аргументы

  1. 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)
source npm package

Создает функцию, которая выполняет частичное глубокое сравнение значения по path заданного объекта с srcValue, возвращая true, если значение объекта эквивалентно, иначе false.

Примечание: Частичные сравнения будут сопоставлять значения пустого массива и пустого объекта srcValue с любым значением массива или объекта соответственно. См. _.isEqual для списка поддерживаемых сравнений значений.

С версии

3.2.0

Аргументы

  1. path (Массив|строка): Путь к свойству для получения.
  2. 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])
source npm package

Создает функцию, которая вызывает метод по path заданного объекта. Любые дополнительные аргументы предоставляются вызываемому методу.

С версии

3.7.0

Аргументы

  1. path (Массив|строка): Путь к методу для вызова.
  2. [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])
source npm package

Противоположность _.method; этот метод создает функцию, которая вызывает метод по заданному пути object. Любые дополнительные аргументы предоставляются вызываемому методу.

С версии

3.7.0

Аргументы

  1. object (Объект): Объект для запроса.
  2. [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={}])
source npm package

Добавляет все собственные перечисляемые строковые функции свойств объекта источника к целевому объекту. Если object является функцией, то методы также добавляются к её прототипу.

Примечание: Используйте _.runInContext для создания первозданной функции lodash во избежание конфликтов, вызванных изменением оригинала.

С версии

0.1.0

Аргументы

  1. [object=lodash] (Функция|Объект): Целевой объект.
  2. source (Объект): Объект функций для добавления.
  3. [options={}] (Объект): Объект параметров.
  4. [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()
source npm package

Возвращает переменную _ к её предыдущему значению и возвращает ссылку на функцию lodash.

С версии

0.1.0

Возвращает

(Функция): Возвращает функцию lodash.

Пример

var lodash = _.noConflict();

_.noop()
source npm package

Этот метод возвращает undefined.

С версии

2.3.0

Пример

_.times(2, _.noop);
// => [undefined, undefined]

_.nthArg([n=0])
source npm package

Создает функцию, которая получает аргумент по индексу n. Если n отрицателен, возвращается n-й аргумент с конца.

С версии

4.0.0

Аргументы

  1. [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]])
source npm package

Создает функцию, которая вызывает iteratees с полученными аргументами и возвращает их результаты.

С версии

4.0.0

Аргументы

  1. [iteratees=[_.identity]] (...(Функция|Функция[])): Итерируемые функции для вызова.

Возвращает

(Функция): Возвращает новую функцию.

Пример

var func = _.over([Math.max, Math.min]);
 

func(1, 2, 3, 4);
// => [4, 1]

_.overEvery([predicates=[_.identity]])
source npm package

Создает функцию, которая проверяет, являются ли все predicates истинными при вызове с полученными аргументами.

С версии

4.0.0

Аргументы

  1. [predicates=[_.identity]] (...(Функция|Функция[])): Предикаты для проверки.

Возвращает

(Функция): Возвращает новую функцию.

Пример

var func = _.overEvery([Boolean, isFinite]);
 

func('1');
// => true
 

func(null);
// => false
 

func(NaN);
// => false

_.overSome([predicates=[_.identity]])
source npm package

Создает функцию, которая проверяет, является ли хотя бы один из predicates истинным при вызове с полученными аргументами.

С версии

4.0.0

Аргументы

  1. [predicates=[_.identity]] (...(Функция|Функция[])): Предикаты для проверки.

Возвращает

(Функция): Возвращает новую функцию.

Пример

var func = _.overSome([Boolean, isFinite]);
 

func('1');
// => true
 

func(null);
// => true
 

func(NaN);
// => false

_.property(path)
source npm package

Создает функцию, которая возвращает значение по path заданного объекта.

С версии

2.4.0

Аргументы

  1. 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)
source npm package

Противоположность _.property; этот метод создает функцию, которая возвращает значение по заданному пути object.

С версии

3.0.0

Аргументы

  1. 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])
source npm package

Создаёт массив чисел (положительных и/или отрицательных), начиная с start до, но не включая, end. Шаг -1 используется, если указан отрицательный start без end или step. Если end не указан, он устанавливается в start с start затем устанавливается в 0.

Примечание: JavaScript следует стандарту IEEE-754 для вычисления значений с плавающей точкой, что может привести к неожиданным результатам.

Since

0.1.0

Arguments

  1. [start=0] (number): Начало диапазона.
  2. end (number): Конец диапазона.
  3. [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])
source npm package

Этот метод похож на _.range, за исключением того, что он заполняет значения в обратном порядке.

Since

4.0.0

Arguments

  1. [start=0] (number): Начало диапазона.
  2. end (number): Конец диапазона.
  3. [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])
source npm package

Создаёт новую первозданную функцию lodash с использованием объекта context.

Since

1.1.0

Arguments

  1. [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()
source npm package

Этот метод возвращает новый пустой массив.

Since

4.13.0

Returns

(Array): Возвращает новый пустой массив.

Example

var arrays = _.times(2, _.stubArray);
 

console.log(arrays);
// => [[], []]
 

console.log(arrays[0] === arrays[1]);
// => false

_.stubFalse()
source npm package

Этот метод возвращает false.

Since

4.13.0

Returns

(boolean): Возвращает false.

Example

_.times(2, _.stubFalse);
// => [false, false]

_.stubObject()
source npm package

Этот метод возвращает новый пустой объект.

Since

4.13.0

Returns

(Object): Возвращает новый пустой объект.

Example

var objects = _.times(2, _.stubObject);
 

console.log(objects);
// => [{}, {}]
 

console.log(objects[0] === objects[1]);
// => false

_.stubString()
source npm package

Этот метод возвращает пустую строку.

Since

4.13.0

Returns

(string): Возвращает пустую строку.

Example

_.times(2, _.stubString);
// => ['', '']

_.stubTrue()
source npm package

Этот метод возвращает true.

Since

4.13.0

Returns

(boolean): Возвращает true.

Example

_.times(2, _.stubTrue);
// => [true, true]

_.times(n, [iteratee=_.identity])
source npm package

Вызывает итератор n раз, возвращая массив результатов каждого вызова. Итератор вызывается с одним аргументом; (index).

Since

0.1.0

Arguments

  1. n (number): Количество раз, которое нужно вызвать iteratee.
  2. [iteratee=_.identity] (Function): Функция, вызываемая на каждой итерации.

Returns

(Array): Возвращает массив результатов.

Example

_.times(3, String);
// => ['0', '1', '2']
 
 _.times(4, _.constant(0));
// => [0, 0, 0, 0]

_.toPath(value)
source npm package

Преобразует value в массив путей к свойствам.

Since

4.0.0

Arguments

  1. value (*): Значение для преобразования.

Returns

(Array): Возвращает новый массив путей к свойствам.

Example

_.toPath('a.b.c');
// => ['a', 'b', 'c']
 
_.toPath('a[0].b.c');
// => ['a', '0', 'b', 'c']

_.uniqueId([prefix=''])
source npm package

Генерирует уникальный ID. Если указан prefix, ID добавляется к нему.

Since

0.1.0

Arguments

  1. [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
source npm package

(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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API