Spec-Zone.ru › lodash 3

lodash

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

_.chunk(array, [size=1])
исходный код пакет npm

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

Аргументы

  1. array (Массив): Обрабатываемый массив.
  2. [size=1] (число): Длина каждой группы.

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

(Массив): Возвращает новый массив, содержащий фрагменты.

Пример

_.chunk(['a', 'b', 'c', 'd'], 2);
// => [['a', 'b'], ['c', 'd']]
 
_.chunk(['a', 'b', 'c', 'd'], 3);
// => [['a', 'b', 'c'], ['d']]

_.compact(array)
исходный код пакет npm

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

Аргументы

  1. array (Массив): Массив для компактизации.

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

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

Пример

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

_.difference(array, [values])
исходный код пакет npm

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

Аргументы

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

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

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

Пример

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

_.drop(array, [n=1])
исходный код пакет npm

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

Аргументы

  1. array (Массив): Массив для обработки.
  2. [n=1] (число): Количество элементов для удаления.

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

(Массив): Возвращает фрагмент массива.

Пример

_.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])
исходный код пакет npm

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

Аргументы

  1. array (Массив): Массив для обработки.
  2. [n=1] (число): Количество элементов для удаления.

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

(Массив): Возвращает фрагмент массива.

Пример

_.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], [thisArg])
исходный код пакет npm

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

Если для predicate указано имя свойства, созданная функция обратного вызова в стиле _.property возвращает значение свойства данного элемента.

Если для thisArg также указано значение, созданная функция обратного вызова в стиле _.matchesProperty возвращает true для элементов, имеющих соответствующее значение свойства, иначе false.

Если для predicate указан объект, созданная функция обратного вызова в стиле _.matches возвращает true для элементов, соответствующих свойствам заданного объекта, иначе false.

Аргументы

  1. array (Массив): Массив для обработки.
  2. [predicate=_.identity] (Функция|Объект|строка): Функция, вызываемая при каждом итерационном шаге.
  3. [thisArg] (*): Связывание this для predicate.

Возвращает

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

Пример

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

var users = [
  { 'user': 'barney',  'active': true },

  { 'user': 'fred',    'active': false },

  { 'user': 'pebbles', 'active': false }
];
 
// using the `_.matches` callback shorthand
_.pluck(_.dropRightWhile(users, { 'user': 'pebbles', 'active': false }), 'user');
// => ['barney', 'fred']
 
// using the `_.matchesProperty` callback shorthand
_.pluck(_.dropRightWhile(users, 'active', false), 'user');
// => ['barney']
 
// using the `_.property` callback shorthand
_.pluck(_.dropRightWhile(users, 'active'), 'user');
// => ['barney', 'fred', 'pebbles']

_.dropWhile(массив, [предикат=_.identity], [thisArg])
исходный код пакет npm

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

Если для predicate указано имя свойства, созданная _.property-стиль обратного вызова возвращает значение свойства данного элемента.

Если также указано значение для thisArg, созданный _.matchesProperty-стиль обратного вызова возвращает true для элементов, имеющих соответствующее значение свойства, иначе false.

Если для predicate указан объект, созданный _.matches-стиль обратного вызова возвращает true для элементов, имеющих свойства данного объекта, иначе false.

Аргументы

  1. array (Массив): Массив для запроса.
  2. [predicate=_.identity] (Функция|Объект|строка): Функция, вызываемая на каждой итерации.
  3. [thisArg] (*): Связывание this с predicate.

Возвращает

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

Пример

_.dropWhile([1, 2, 3], function(n) {
  return n < 3;
});
// => [3]
 

var users = [
  { 'user': 'barney',  'active': false },

  { 'user': 'fred',    'active': false },

  { 'user': 'pebbles', 'active': true }
];
 
// using the `_.matches` callback shorthand
_.pluck(_.dropWhile(users, { 'user': 'barney', 'active': false }), 'user');
// => ['fred', 'pebbles']
 
// using the `_.matchesProperty` callback shorthand
_.pluck(_.dropWhile(users, 'active', false), 'user');
// => ['pebbles']
 
// using the `_.property` callback shorthand
_.pluck(_.dropWhile(users, 'active'), 'user');
// => ['barney', 'fred', 'pebbles']

_.fill(массив, значение, [начало=0], [конец=длина_массива])
исходный код пакет npm

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

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

Аргументы

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

Возвращает

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

Пример

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], '*', 1, 2);
// => [4, '*', 8]

_.findIndex(массив, [предикат=_.identity], [thisArg])
исходный код пакет npm

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

Если для predicate указано имя свойства, созданный _.property-стиль обратного вызова возвращает значение свойства данного элемента.

Если также указано значение для thisArg, созданный _.matchesProperty-стиль обратного вызова возвращает true для элементов, имеющих соответствующее значение свойства, иначе false.

Если для predicate указан объект, созданный _.matches-стиль обратного вызова возвращает true для элементов, имеющих свойства данного объекта, иначе false.

Аргументы

  1. array (Массив): Массив для поиска.
  2. [predicate=_.identity] (Функция|Объект|строка): Функция, вызываемая на каждой итерации.
  3. [thisArg] (*): Связывание this с predicate.

Возвращает

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

Пример

var users = [
  { 'user': 'barney',  'active': false },

  { 'user': 'fred',    'active': false },

  { 'user': 'pebbles', 'active': true }
];
 
_.findIndex(users, function(chr) {
  return chr.user == 'barney';
});
// => 0
 
// using the `_.matches` callback shorthand
_.findIndex(users, { 'user': 'fred', 'active': false });
// => 1
 
// using the `_.matchesProperty` callback shorthand
_.findIndex(users, 'active', false);
// => 0
 
// using the `_.property` callback shorthand
_.findIndex(users, 'active');
// => 2

_.findLastIndex(массив, [предикат=_.identity], [thisArg])
исходный код пакет npm

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

Если для predicate указано имя свойства, созданный _.property-стиль обратного вызова возвращает значение свойства данного элемента.

Если также указано значение для thisArg, созданный _.matchesProperty-стиль обратного вызова возвращает true для элементов, имеющих соответствующее значение свойства, иначе false.

Если для predicate указан объект, созданный _.matches-стиль обратного вызова возвращает true для элементов, имеющих свойства данного объекта, иначе false.

Аргументы

  1. array (Массив): Массив для поиска.
  2. [predicate=_.identity] (Функция|Объект|строка): Функция, вызываемая на каждой итерации.
  3. [thisArg] (*): Связывание this с predicate.

Возвращает

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

Пример

var users = [
  { 'user': 'barney',  'active': true },

  { 'user': 'fred',    'active': false },

  { 'user': 'pebbles', 'active': false }
];
 
_.findLastIndex(users, function(chr) {
  return chr.user == 'pebbles';
});
// => 2
 
// using the `_.matches` callback shorthand
_.findLastIndex(users, { 'user': 'barney', 'active': true });
// => 0
 
// using the `_.matchesProperty` callback shorthand
_.findLastIndex(users, 'active', false);
// => 2
 
// using the `_.property` callback shorthand
_.findLastIndex(users, 'active');
// => 0

_.first(массив)
исходный код пакет npm

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

Псевдонимы

_.head

Аргументы

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

Возвращает

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

Пример

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

_.flatten(array, [isDeep])
source npm package

Разворачивает вложенный массив. Если isDeep равно true, массив рекурсивно развернётся, в противном случае он развернётся только на один уровень.

Аргументы

  1. array (Массив): Массив для разворачивания.
  2. [isDeep] (boolean): Указать глубокое разворачивание.

Возвращает

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

Пример

_.flatten([1, [2, 3, [4]]]);
// => [1, 2, 3, [4]]
 
// using `isDeep`
_.flatten([1, [2, 3, [4]]], true);
// => [1, 2, 3, 4]

_.flattenDeep(array)
source npm package

Рекурсивно разворачивает вложенный массив.

Аргументы

  1. array (Массив): Массив для рекурсивного разворачивания.

Возвращает

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

Пример

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

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

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

Аргументы

  1. array (Массив): Массив для поиска.
  2. value (*): Значение для поиска.
  3. [fromIndex=0] (boolean|number): Индекс для начала поиска или true для выполнения двоичного поиска в отсортированном массиве.

Возвращает

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

Пример

_.indexOf([1, 2, 1, 2], 2);
// => 1
 
// using `fromIndex`
_.indexOf([1, 2, 1, 2], 2, 2);
// => 3
 
// performing a binary search
_.indexOf([1, 1, 2, 2], 2, true);
// => 2

_.initial(array)
source npm package

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

Аргументы

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

Возвращает

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

Пример

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

_.intersection([arrays])
source npm package

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

Аргументы

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

Возвращает

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

Пример

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

_.last(array)
source npm package

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

Аргументы

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

Возвращает

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

Пример

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

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

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

Аргументы

  1. array (Массив): Массив для поиска.
  2. value (*): Значение для поиска.
  3. [fromIndex=array.length-1] (boolean|number): Индекс для начала поиска или true для выполнения двоичного поиска в отсортированном массиве.

Возвращает

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

Пример

_.lastIndexOf([1, 2, 1, 2], 2);
// => 3
 
// using `fromIndex`
_.lastIndexOf([1, 2, 1, 2], 2, 2);
// => 1
 
// performing a binary search
_.lastIndexOf([1, 1, 2, 2], 2, true);
// => 3

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

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

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

Аргументы

  1. array (Массив): Массив для изменения.
  2. [values] (...*): Значения для удаления.

Возвращает

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

Пример

var array = [1, 2, 3, 1, 2, 3];
 
_.pull(array, 2, 3);

console.log(array);
// => [1, 1]

_.pullAt(array, [indexes])
source npm package

Удаляет элементы из array соответствующие заданным индексам и возвращает массив удалённых элементов. Индексы могут быть заданы как массив индексов или как отдельные аргументы.

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

Аргументы

  1. array (Массив): Массив для изменения.
  2. [indexes] (...(number|number[])): Индексы элементов для удаления, указанные как отдельные индексы или массивы индексов.

Возвращает

(Массив): Возвращает новый массив удалённых элементов.

Пример

var array = [5, 10, 15, 20];

var evens = _.pullAt(array, 1, 3);
 

console.log(array);
// => [5, 15]
 

console.log(evens);
// => [10, 20]

_.remove(array, [predicate=_.identity], [thisArg])
source npm package

Удаляет все элементы из array для которых predicate возвращает истинное значение и возвращает массив удалённых элементов. Предикат привязан к thisArg и вызывается с тремя аргументами: (значение, индекс, массив).

Если для predicate указано имя свойства, созданная функция обратного вызова в стиле _.property возвращает значение свойства данного элемента.

Если также указано значение для thisArg , созданная функция обратного вызова в стиле _.matchesProperty возвращает true для элементов, имеющих соответствующее значение свойства, в противном случае false.

Если для predicate указан объект, созданная функция обратного вызова в стиле _.matches возвращает true для элементов, имеющих свойства данного объекта, в противном случае false.

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

Аргументы

  1. array (Массив): Массив для изменения.
  2. [predicate=_.identity] (Функция|Объект|строка): Функция, вызываемая на каждой итерации.
  3. [thisArg] (*): Связывание контекста вызова this для predicate.

Возвращает

(Массив): Возвращает новый массив удалённых элементов.

Пример

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]

_.rest(array)
source npm package

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

Псевдонимы

_.tail

Аргументы

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

Возвращает

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

Пример

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

_.slice(array, [start=0], [end=array.length])
source npm package

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

Примечание: Этот метод используется вместо Array#slice для поддержки списков узлов в IE < 9 и для гарантии возвращения плотных массивов.

Аргументы

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

Возвращает

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

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

Использует двоичный поиск для определения наименьшего индекса, в который следует вставить value в array для сохранения его сортировки. Если функция iteratee задана, она вызывается для value и каждого элемента array для вычисления их ранжирования сортировки. Iteratee привязан к thisArg и вызывается с одним аргументом; (значение).

Если для iteratee указано имя свойства, созданная функция обратного вызова в стиле _.property возвращает значение свойства данного элемента.

Если также указано значение для thisArg , созданная функция обратного вызова в стиле _.matchesProperty возвращает true для элементов, имеющих соответствующее значение свойства, в противном случае false.

Если для iteratee указан объект, созданная функция обратного вызова в стиле _.matches возвращает true для элементов, имеющих свойства данного объекта, в противном случае false.

Аргументы

  1. array (Массив): Сортируемый массив для проверки.
  2. value (*): Значение для оценки.
  3. [iteratee=_.identity] (Функция|Объект|строка): Функция, вызываемая на каждой итерации.
  4. [thisArg] (*): Связывание this для iteratee.

Возвращает

(число): Возвращает индекс, в котором value следует вставить в array.

Пример

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

var dict = { 'data': { 'thirty': 30, 'forty': 40, 'fifty': 50 } };
 
// using an iteratee function
_.sortedIndex(['thirty', 'fifty'], 'forty', function(word) {
  return this.data[word];
}, dict);
// => 1
 
// using the `_.property` callback shorthand
_.sortedIndex([{ 'x': 30 }, { 'x': 50 }], { 'x': 40 }, 'x');
// => 1

_.sortedLastIndex(array, value, [iteratee=_.identity], [thisArg])
исходный код пакет npm

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

Аргументы

  1. array (Массив): Сортируемый массив для проверки.
  2. value (*): Значение для оценки.
  3. [iteratee=_.identity] (Функция|Объект|строка): Функция, вызываемая на каждой итерации.
  4. [thisArg] (*): Связывание this для iteratee.

Возвращает

(число): Возвращает индекс, в котором value следует вставить в array.

Пример

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

_.take(array, [n=1])
исходный код пакет npm

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

Аргументы

  1. array (Массив): Массив для запроса.
  2. [n=1] (число): Количество элементов для взятия.

Возвращает

(Массив): Возвращает фрагмент array.

Пример

_.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])
исходный код пакет npm

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

Аргументы

  1. array (Массив): Массив для запроса.
  2. [n=1] (число): Количество элементов для взятия.

Возвращает

(Массив): Возвращает фрагмент array.

Пример

_.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], [thisArg])
исходный код пакет npm

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

Если для predicate задано имя свойства, созданный callback в стиле _.property возвращает значение свойства данного элемента.

Если также для thisArg задано значение, созданный callback в стиле _.matchesProperty возвращает true для элементов, имеющих соответствующее значение свойства, иначе false.

Если для predicate задан объект, созданный callback в стиле _.matches возвращает true для элементов, имеющих свойства заданного объекта, иначе false.

Аргументы

  1. array (Массив): Массив для запроса.
  2. [predicate=_.identity] (Функция|Объект|строка): Функция, вызываемая на каждой итерации.
  3. [thisArg] (*): Связывание this для predicate.

Возвращает

(Массив): Возвращает фрагмент array.

Пример

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

var users = [
  { 'user': 'barney',  'active': true },

  { 'user': 'fred',    'active': false },

  { 'user': 'pebbles', 'active': false }
];
 
// using the `_.matches` callback shorthand
_.pluck(_.takeRightWhile(users, { 'user': 'pebbles', 'active': false }), 'user');
// => ['pebbles']
 
// using the `_.matchesProperty` callback shorthand
_.pluck(_.takeRightWhile(users, 'active', false), 'user');
// => ['fred', 'pebbles']
 
// using the `_.property` callback shorthand
_.pluck(_.takeRightWhile(users, 'active'), 'user');
// => []

_.takeWhile(array, [predicate=_.identity], [thisArg])
исходный код пакет npm

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

Если для predicate задано имя свойства, созданный callback в стиле _.property возвращает значение свойства данного элемента.

Если также для thisArg задано значение, созданный callback в стиле _.matchesProperty возвращает true для элементов, имеющих соответствующее значение свойства, иначе false.

Если для predicate задан объект, созданный callback в стиле _.matches возвращает true для элементов, имеющих свойства заданного объекта, иначе false.

Аргументы

  1. array (Массив): Массив для запроса.
  2. [predicate=_.identity] (Функция|Объект|строка): Функция, вызываемая на каждой итерации.
  3. [thisArg] (*): Связывание this для predicate.

Возвращает

(Массив): Возвращает фрагмент array.

Пример

_.takeWhile([1, 2, 3], function(n) {
  return n < 3;
});
// => [1, 2]
 

var users = [
  { 'user': 'barney',  'active': false },

  { 'user': 'fred',    'active': false},

  { 'user': 'pebbles', 'active': true }
];
 
// using the `_.matches` callback shorthand
_.pluck(_.takeWhile(users, { 'user': 'barney', 'active': false }), 'user');
// => ['barney']
 
// using the `_.matchesProperty` callback shorthand
_.pluck(_.takeWhile(users, 'active', false), 'user');
// => ['barney', 'fred']
 
// using the `_.property` callback shorthand
_.pluck(_.takeWhile(users, 'active'), 'user');
// => []

_.union([arrays])
исходный код пакет npm

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

Аргументы

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

Возвращает

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

Пример

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

_.uniq(array, [isSorted], [iteratee], [thisArg])
исходный код пакет npm

Создаёт копию массива без дубликатов, используя SameValueZero для сравнения на равенство, в котором сохраняется только первое вхождение каждого элемента. Предоставление true для isSorted выполняет более быстрый алгоритм поиска для отсортированных массивов. Если предоставлена функция-итератор, она вызывается для каждого элемента в массиве для генерации критерия, по которому вычисляется уникальность. iteratee привязана к thisArg и вызывается с тремя аргументами: (значение, индекс, массив).

Если для iteratee задано имя свойства, созданный callback в стиле _.property возвращает значение свойства данного элемента.

Если также для thisArg задано значение, созданный callback в стиле _.matchesProperty возвращает true для элементов, имеющих соответствующее значение свойства, иначе false.

Если для iteratee задан объект, созданный callback в стиле _.matches возвращает true для элементов, имеющих свойства заданного объекта, иначе false.

Псевдонимы

_.unique

Аргументы

  1. array (Массив): Массив для проверки.
  2. [isSorted] (логическое значение): Указывает, что массив отсортирован.
  3. [iteratee] (Функция|Объект|строка): Функция, вызываемая на каждой итерации.
  4. [thisArg] (*): Связывание this для iteratee.

Возвращает

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

Пример

_.uniq([2, 1, 2]);
// => [2, 1]
 
// using `isSorted`
_.uniq([1, 1, 2], true);
// => [1, 2]
 
// using an iteratee function
_.uniq([1, 2.5, 1.5, 2], function(n) {
  return this.floor(n);
}, Math);
// => [1, 2.5]
 
// using the `_.property` callback shorthand
_.uniq([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');
// => [{ 'x': 1 }, { 'x': 2 }]

_.unzip(array)
исходный код пакет npm

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

Аргументы

  1. array (Массив): Массив сгруппированных элементов для обработки.

Возвращает

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

Пример

var zipped = _.zip(['fred', 'barney'], [30, 40], [true, false]);
// => [['fred', 30, true], ['barney', 40, false]]
 
_.unzip(zipped);
// => [['fred', 'barney'], [30, 40], [true, false]]

_.unzipWith(array, [iteratee], [thisArg])
исходный код пакет npm

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

Аргументы

  1. array (Массив): Массив сгруппированных элементов для обработки.
  2. [iteratee] (Функция): Функция для объединения перегруппированных значений.
  3. [thisArg] (*): Связывание this для iteratee.

Возвращает

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

Пример

var zipped = _.zip([1, 2], [10, 20], [100, 200]);
// => [[1, 10, 100], [2, 20, 200]]
 
_.unzipWith(zipped, _.add);
// => [3, 30, 300]

_.without(array, [values])
исходный код пакет npm

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

Аргументы

  1. array (Массив): Массив для фильтрации.
  2. [values] (...*): Значения для исключения.

Возвращает

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

Пример

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

_.xor([массивы])
исходный код пакет npm

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

Аргументы

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

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

(Массив): Возвращает новый массив значений.

Пример

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

_.zip([массивы])
исходный код пакет npm

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

Аргументы

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

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

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

Пример

_.zip(['fred', 'barney'], [30, 40], [true, false]);
// => [['fred', 30, true], ['barney', 40, false]]

_.zipObject(свойства, [значения=[]])
исходный код пакет npm

Обратный метод к _.pairs; этот метод возвращает объект, составленный из массивов имён свойств и значений. Предоставьте либо один двумерный массив, например [[key1, value1], [key2, value2]], либо два массива: один с именами свойств и другой с соответствующими значениями.

Псевдонимы

_.object

Аргументы

  1. props (Массив): Имена свойств.
  2. [values=[]] (Массив): Значения свойств.

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

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

Пример

_.zipObject([['fred', 30], ['barney', 40]]);
// => { 'fred': 30, 'barney': 40 }
 
_.zipObject(['fred', 'barney'], [30, 40]);
// => { 'fred': 30, 'barney': 40 }

_.zipWith([массивы], [итератор], [thisArg])
исходный код пакет npm

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

Аргументы

  1. [arrays] (...Массив): Массивы для обработки.
  2. [iteratee] (Функция): Функция для комбинирования сгруппированных значений.
  3. [thisArg] (*): Привязка this к iteratee.

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

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

Пример

_.zipWith([1, 2], [10, 20], [100, 200], _.add);
// => [111, 222]

Методы «Цепочки»

_(значение)
исходный код пакет npm

Создаёт объект «цепочки», который оборачивает value для включения неявной цепочки. Методы, которые работают с массивами, коллекциями и функциями и возвращают их, могут быть объединены в цепочку. Методы, которые извлекают одно значение или могут возвращать примитивное значение, автоматически завершают цепочку, возвращая необработанное значение. Явную цепочку можно включить, используя _.chain. Выполнение методов в цепочке откладывается до момента, когда _#value вызывается явно или неявно.

Ленивая оценка позволяет нескольким методам поддерживать слияние сокращений. Слияние сокращений — это стратегия оптимизации, которая объединяет вызовы итераторов; это может помочь избежать создания промежуточных структур данных и значительно уменьшить количество вызовов итераторов.

Цепочку поддерживают настраиваемые сборки, только если метод _#value непосредственно или косвенно включён в сборку.

Помимо методов lodash, у обёрток есть методы Array и String.

Методы обёртки Array:
concat, join, pop, push, reverse, shift, slice, sort, splice, и unshift

Методы обёртки String:
replace и split

Методы обёртки, которые поддерживают слияние сокращений:
compact, drop, dropRight, dropRightWhile, dropWhile, filter, first, initial, last, map, pluck, reject, rest, reverse, slice, take, takeRight, takeRightWhile, takeWhile, toArray, и where

Методы обёртки, поддерживающие цепочки:
after, ary, assign, at, before, bind, bindAll, bindKey, callback, chain, chunk, commit, compact, concat, constant, countBy, create, curry, debounce, defaults, defaultsDeep, defer, delay, difference, drop, dropRight, dropRightWhile, dropWhile, fill, filter, flatten, flattenDeep, flow, flowRight, forEach, forEachRight, forIn, forInRight, forOwn, forOwnRight, functions, groupBy, indexBy, initial, intersection, invert, invoke, keys, keysIn, map, mapKeys, mapValues, matches, matchesProperty, memoize, merge, method, methodOf, mixin, modArgs, negate, omit, once, pairs, partial, partialRight, partition, pick, plant, pluck, property, propertyOf, pull, pullAt, push, range, rearg, reject, remove, rest, restParam, reverse, set, shuffle, slice, sort, sortBy, sortByAll, sortByOrder, splice, spread, take, takeRight, takeRightWhile, takeWhile, tap, throttle, thru, times, toArray, toPlainObject, transform, union, uniq, unshift, unzip, unzipWith, values, valuesIn, where, without, wrap, xor, zip, zipObject, zipWith

Методы обёртки, которые не поддерживают цепочку по умолчанию:
add, attempt, camelCase, capitalize, ceil, clone, cloneDeep, deburr, endsWith, escape, escapeRegExp, every, find, findIndex, findKey, findLast, findLastIndex, findLastKey, findWhere, first, floor, get, gt, gte, has, identity, includes, indexOf, inRange, isArguments, isArray, isBoolean, isDate, isElement, isEmpty, isEqual, isError, isFinite isFunction, isMatch, isNative, isNaN, isNull, isNumber, isObject, isPlainObject, isRegExp, isString, isUndefined, isTypedArray, join, kebabCase, last, lastIndexOf, lt, lte, max, min, noConflict, noop, now, pad, padLeft, padRight, parseInt, pop, random, reduce, reduceRight, repeat, result, round, runInContext, shift, size, snakeCase, some, sortedIndex, sortedLastIndex, startCase, startsWith, sum, template, trim, trimLeft, trimRight, trunc, unescape, uniqueId, value, и words

Метод обёртки sample вернёт значение в обёртке, если n предоставлено, в противном случае возвращается необработанное значение.

Аргументы

  1. value (*): Значение для обертывания в экземпляр lodash.

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

(Объект): Возвращает новый экземпляр обёртки lodash.

Пример

var wrapped = _([1, 2, 3]);
 
// returns an unwrapped value
wrapped.reduce(function(total, n) {
  return total + n;
});
// => 6
 
// returns a wrapped value

var squares = wrapped.map(function(n) {
  return n * n;
});
 
_.isArray(squares);
// => false
 
_.isArray(squares.value());
// => true

_.chain(value)
source npm package

Создаёт объект lodash, который оборачивает value с включённой явной цепочкой вызовов методов.

Аргументы

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

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

(Объект): Возвращает новый экземпляр обертки lodash.

Пример

var users = [
  { 'user': 'barney',  'age': 36 },

  { 'user': 'fred',    'age': 40 },

  { 'user': 'pebbles', 'age': 1 }
];
 

var youngest = _.chain(users)
  .sortBy('age')
  .map(function(chr) {
    return chr.user + ' is ' + chr.age;
  })
  .first()
  .value();
// => 'pebbles is 1'

_.tap(value, interceptor, [thisArg])
source npm package

Этот метод вызывает interceptor и возвращает value. Интерцептор привязан к thisArg и вызывается с одним аргументом; (значение). Цель этого метода — «подключиться» к цепочке вызовов, чтобы выполнить операции над промежуточными результатами в рамках цепочки.

Аргументы

  1. value (*): Значение, которое будет передано в interceptor.
  2. interceptor (Функция): Функция для вызова.
  3. [thisArg] (*): Связывание this для interceptor.

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

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

Пример

_([1, 2, 3])
 .tap(function(array) {
   array.pop();
 })
 .reverse()
 .value();
// => [2, 1]

_.thru(value, interceptor, [thisArg])
source npm package

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

Аргументы

  1. value (*): Значение, которое будет передано в interceptor.
  2. interceptor (Функция): Функция для вызова.
  3. [thisArg] (*): Связывание this для interceptor.

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

(*): Возвращает результат interceptor.

Пример

_('  abc  ')
 .chain()
 .trim()
 .thru(function(value) {
   return [value];
 })
 .value();
// => ['abc']

_.prototype.chain()
source npm package

Включает явное цепочное вызывание методов для объекта-обертки.

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

(Объект): Возвращает новый экземпляр обертки lodash.

Пример

var users = [
  { 'user': 'barney', 'age': 36 },

  { 'user': 'fred',   'age': 40 }
];
 
// without explicit chaining

_(users).first();
// => { 'user': 'barney', 'age': 36 }
 
// with explicit chaining

_(users).chain()
  .first()
  .pick('user')
  .value();
// => { 'user': 'barney' }

_.prototype.commit()
source npm package

Выполняет цепочку вызовов и возвращает обернутый результат.

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

(Объект): Возвращает новый экземпляр обертки lodash.

Пример

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.concat([values])
source npm package

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

Аргументы

  1. [values] (...*): Значения для конкатенации.

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

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

Пример

var array = [1];

var wrapped = _(array).concat(2, [3], [[4]]);
 

console.log(wrapped.value());
// => [1, 2, 3, [4]]
 

console.log(array);
// => [1]

_.prototype.plant()
source npm package

Создаёт клон цепочки вызовов, подсаживая value в качестве обернутого значения.

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

(Объект): Возвращает новый экземпляр обертки lodash.

Пример

var array = [1, 2];

var wrapped = _(array).map(function(value) {
  return Math.pow(value, 2);
});
 

var other = [3, 4];

var otherWrapped = wrapped.plant(other);
 
otherWrapped.value();
// => [9, 16]
 
wrapped.value();
// => [1, 4]

_.prototype.reverse()
source npm package

Инвертирует обернутый массив, так что первый элемент становится последним, второй — предпоследним и так далее.

Примечание: Этот метод изменяет обернутый массив.

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

(Объект): Возвращает новый инвертированный экземпляр обертки lodash.

Пример

var array = [1, 2, 3];
 

_(array).reverse().value()
// => [3, 2, 1]
 

console.log(array);
// => [3, 2, 1]

_.prototype.toString()
source npm package

Производит результат принудительного преобразования значения вне обертки в строку.

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

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

Пример

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

_.prototype.value()
source npm package

Выполняет цепочку вызовов для извлечения значения вне обертки.

Псевдонимы

_.prototype.run, _.prototype.toJSON, _.prototype.valueOf

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

(*): Возвращает решенный результат значения вне обертки.

Пример

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

Методы «Коллекции»

_.at(collection, [props])
source npm package

Создаёт массив элементов, соответствующих заданным ключам или индексам collection. Ключи могут быть указаны в виде отдельных аргументов или массивов ключей.

Аргументы

  1. collection (Массив|Объект|строка): Коллекция для итерации.
  2. [props] (...(число|массив чисел|строка|массив строк)): Имена свойств или индексы элементов для выбора, указанные по отдельности или в массивах.

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

(Массив): Возвращает новый массив выбранных элементов.

Пример

_.at(['a', 'b', 'c'], [0, 2]);
// => ['a', 'c']
 
_.at(['barney', 'fred', 'pebbles'], 0, 2);
// => ['barney', 'pebbles']

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

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

Если для iteratee указано имя свойства, созданный обратный вызов в стиле _.property возвращает значение свойства данного элемента.

Если для thisArg также указано значение, созданный обратный вызов в стиле _.matchesProperty возвращает true для элементов, имеющих соответствующее значение свойства, иначе false.

Если для iteratee указан объект, созданный обратный вызов в стиле _.matches возвращает true для элементов, имеющих свойства заданного объекта, иначе false.

Аргументы

  1. collection (Массив|Объект|строка): Коллекция для итерации.
  2. [iteratee=_.identity] (Функция|Объект|строка): Функция, вызываемая на каждой итерации.
  3. [thisArg] (*): Связывание this для iteratee.

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

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

Пример

_.countBy([4.3, 6.1, 6.4], function(n) {
  return Math.floor(n);
});
// => { '4': 1, '6': 2 }
 
_.countBy([4.3, 6.1, 6.4], function(n) {
  return this.floor(n);
}, Math);
// => { '4': 1, '6': 2 }
 
_.countBy(['one', 'two', 'three'], 'length');
// => { '3': 2, '5': 1 }

_.every(collection, [predicate=_.identity], [thisArg])
source npm package

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

Если для predicate указано имя свойства, созданный обратный вызов в стиле _.property возвращает значение свойства данного элемента.

Если для thisArg также указано значение, созданный обратный вызов в стиле _.matchesProperty возвращает true для элементов, имеющих соответствующее значение свойства, иначе false.

Если для predicate указан объект, созданный обратный вызов в стиле _.matches возвращает true для элементов, имеющих свойства заданного объекта, иначе false.

Псевдонимы

_.all

Аргументы

  1. collection (Массив|Объект|строка): Коллекция для итерации.
  2. [predicate=_.identity] (Функция|Объект|строка): Функция, вызываемая на каждой итерации.
  3. [thisArg] (*): Связывание this для predicate.

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

(логическое): Возвращает true , если все элементы проходят проверку предиката, иначе false.

Пример

_.every([true, 1, null, 'yes'], Boolean);
// => false
 

var users = [
  { 'user': 'barney', 'active': false },

  { 'user': 'fred',   'active': false }
];
 
// using the `_.matches` callback shorthand
_.every(users, { 'user': 'barney', 'active': false });
// => false
 
// using the `_.matchesProperty` callback shorthand
_.every(users, 'active', false);
// => true
 
// using the `_.property` callback shorthand
_.every(users, 'active');
// => false

_.filter(collection, [predicate=_.identity], [thisArg])
source npm package

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

Если для predicate указано имя свойства, созданный обратный вызов в стиле _.property возвращает значение свойства данного элемента.

Если для thisArg также указано значение, созданный обратный вызов в стиле _.matchesProperty возвращает true для элементов, имеющих соответствующее значение свойства, иначе false.

Если для predicate указан объект, созданный обратный вызов в стиле _.matches возвращает true для элементов, имеющих свойства заданного объекта, иначе false.

Псевдонимы

_.select

Аргументы

  1. collection (Массив|Объект|строка): Коллекция для итерации.
  2. [predicate=_.identity] (Функция|Объект|строка): Функция, вызываемая на каждой итерации.
  3. [thisArg] (*): Связывание this для predicate.

Возвращает

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

Пример

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

var users = [
  { 'user': 'barney', 'age': 36, 'active': true },

  { 'user': 'fred',   'age': 40, 'active': false }
];
 
// using the `_.matches` callback shorthand
_.pluck(_.filter(users, { 'age': 36, 'active': true }), 'user');
// => ['barney']
 
// using the `_.matchesProperty` callback shorthand
_.pluck(_.filter(users, 'active', false), 'user');
// => ['fred']
 
// using the `_.property` callback shorthand
_.pluck(_.filter(users, 'active'), 'user');
// => ['barney']

_.find(collection, [predicate=_.identity], [thisArg])
source npm package

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

Если для predicate указано имя свойства, созданный вызов в стиле _.property возвращает значение свойства данного элемента.

Если для thisArg также указано значение, созданный вызов в стиле _.matchesProperty возвращает true для элементов, имеющих соответствующее значение свойства, в противном случае false.

Если для predicate указан объект, созданный вызов в стиле _.matches возвращает true для элементов, имеющих свойства данного объекта, в противном случае false.

Псевдонимы

_.detect

Аргументы

  1. collection (Массив|Объект|строка): Коллекция для поиска.
  2. [predicate=_.identity] (Функция|Объект|строка): Функция, вызываемая на каждой итерации.
  3. [thisArg] (*): Связывание this для predicate.

Возвращает

(*): Возвращает соответствующий элемент, в противном случае undefined.

Пример

var users = [
  { 'user': 'barney',  'age': 36, 'active': true },

  { 'user': 'fred',    'age': 40, 'active': false },

  { 'user': 'pebbles', 'age': 1,  'active': true }
];
 
_.result(_.find(users, function(chr) {
  return chr.age < 40;
}), 'user');
// => 'barney'
 
// using the `_.matches` callback shorthand
_.result(_.find(users, { 'age': 1, 'active': true }), 'user');
// => 'pebbles'
 
// using the `_.matchesProperty` callback shorthand
_.result(_.find(users, 'active', false), 'user');
// => 'fred'
 
// using the `_.property` callback shorthand
_.result(_.find(users, 'active'), 'user');
// => 'barney'

_.findLast(collection, [predicate=_.identity], [thisArg])
source npm package

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

Аргументы

  1. collection (Массив|Объект|строка): Коллекция для поиска.
  2. [predicate=_.identity] (Функция|Объект|строка): Функция, вызываемая на каждой итерации.
  3. [thisArg] (*): Связывание this для predicate.

Возвращает

(*): Возвращает соответствующий элемент, в противном случае undefined.

Пример

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

_.findWhere(collection, source)
source npm package

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

Примечание: Этот метод поддерживает сравнение массивов, булевых значений, Date объектов, чисел, Object объектов, регулярных выражений и строк. Объекты сравниваются по своим собственным, а не унаследованным, перечисляемым свойствам. Для сравнения отдельного собственного или унаследованного значения свойства см. _.matchesProperty.

Аргументы

  1. collection (Массив|Объект|строка): Коллекция для поиска.
  2. source (Объект): Объект значений свойств для соответствия.

Возвращает

(*): Возвращает соответствующий элемент, в противном случае undefined.

Пример

var users = [
  { 'user': 'barney', 'age': 36, 'active': true },

  { 'user': 'fred',   'age': 40, 'active': false }
];
 
_.result(_.findWhere(users, { 'age': 36, 'active': true }), 'user');
// => 'barney'
 
_.result(_.findWhere(users, { 'age': 40, 'active': false }), 'user');
// => 'fred'

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

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

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

Псевдонимы

_.each

Аргументы

  1. collection (Массив|Объект|строка): Коллекция для итерации.
  2. [iteratee=_.identity] (Функция): Функция, вызываемая на каждой итерации.
  3. [thisArg] (*): Связывание this для iteratee.

Возвращает

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

Пример

_([1, 2]).forEach(function(n) {
  console.log(n);
}).value();
// => logs each value from left to right and returns the array
 
_.forEach({ 'a': 1, 'b': 2 }, function(n, key) {
  console.log(n, key);
});
// => logs each value-key pair and returns the object (iteration order is not guaranteed)

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

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

Псевдонимы

_.eachRight

Аргументы

  1. collection (Массив|Объект|строка): Коллекция для итерации.
  2. [iteratee=_.identity] (Функция): Функция, вызываемая на каждой итерации.
  3. [thisArg] (*): Связывание this для iteratee.

Возвращает

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

Пример

_([1, 2]).forEachRight(function(n) {
  console.log(n);
}).value();
// => logs each value from right to left and returns the array

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

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

Если для iteratee указано имя свойства, созданный вызов в стиле _.property возвращает значение свойства данного элемента.

Если для thisArg также указано значение, созданный вызов в стиле _.matchesProperty возвращает true для элементов, имеющих соответствующее значение свойства, в противном случае false.

Если для iteratee указан объект, созданный вызов в стиле _.matches возвращает true для элементов, имеющих свойства данного объекта, в противном случае false.

Аргументы

  1. collection (Массив|Объект|строка): Коллекция для итерации.
  2. [iteratee=_.identity] (Функция|Объект|строка): Функция, вызываемая на каждой итерации.
  3. [thisArg] (*): Связывание this для iteratee.

Возвращает

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

Пример

_.groupBy([4.2, 6.1, 6.4], function(n) {
  return Math.floor(n);
});
// => { '4': [4.2], '6': [6.1, 6.4] }
 
_.groupBy([4.2, 6.1, 6.4], function(n) {
  return this.floor(n);
}, Math);
// => { '4': [4.2], '6': [6.1, 6.4] }
 
// using the `_.property` callback shorthand
_.groupBy(['one', 'two', 'three'], 'length');
// => { '3': ['one', 'two'], '5': ['three'] }

_.includes(collection, target, [fromIndex=0])
source npm package

Проверяет, находится ли target в collection с использованием SameValueZero для сравнения на равенство. Если fromIndex отрицательно, оно используется как смещение от конца collection.

Псевдонимы

_.contains, _.include

Аргументы

  1. collection (Массив|Объект|строка): Коллекция для поиска.
  2. target (*): Значение для поиска.
  3. [fromIndex=0] (число): Индекс для поиска.

Возвращает

(логическое значение): Возвращает true если соответствующий элемент найден, в противном случае false.

Пример

_.includes([1, 2, 3], 1);
// => true
 
_.includes([1, 2, 3], 1, 2);
// => false
 
_.includes({ 'user': 'fred', 'age': 40 }, 'fred');
// => true
 
_.includes('pebbles', 'eb');
// => true

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

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

Если для iteratee указано имя свойства, созданный вызов в стиле _.property возвращает значение свойства данного элемента.

Если для thisArg также указано значение, созданный вызов в стиле _.matchesProperty возвращает true для элементов, имеющих соответствующее значение свойства, в противном случае false.

Если для iteratee указан объект, созданный вызов в стиле _.matches возвращает true для элементов, имеющих свойства данного объекта, в противном случае false.

Аргументы

  1. collection (Массив|Объект|строка): Коллекция для итерации.
  2. [iteratee=_.identity] (Функция|Объект|строка): Функция, вызываемая на каждой итерации.
  3. [thisArg] (*): Связывание this для iteratee.

Возвращает

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

Пример

var keyData = [
  { 'dir': 'left', 'code': 97 },

  { 'dir': 'right', 'code': 100 }
];
 
_.indexBy(keyData, 'dir');
// => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } }
 
_.indexBy(keyData, function(object) {
  return String.fromCharCode(object.code);
});
// => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } }
 
_.indexBy(keyData, function(object) {
  return this.fromCharCode(object.code);
}, String);
// => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } }

_.invoke(collection, path, [args])
source npm package

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

Аргументы

  1. collection (Массив|Объект|строка): Коллекция для итерирования.
  2. path (Массив|Функция|строка): Путь к методу для вызова или функция, вызываемая на каждой итерации.
  3. [args] (...*): Аргументы для вызова метода.

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

(Массив): Возвращает массив результатов.

Пример

_.invoke([[5, 1, 7], [3, 2, 1]], 'sort');
// => [[1, 5, 7], [1, 2, 3]]
 
_.invoke([123, 456], String.prototype.split, '');
// => [['1', '2', '3'], ['4', '5', '6']]

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

Создаёт массив значений, пропуская каждый элемент в collection через iteratee. iteratee привязано к thisArg и вызывается с тремя аргументами: (значение, индекс|ключ, коллекция).

Если для iteratee указано имя свойства, созданная функция обратного вызова в стиле _.property возвращает значение свойства данного элемента.

Если для thisArg также указано значение, созданная функция обратного вызова в стиле _.matchesProperty возвращает true для элементов, имеющих соответствующее значение свойства, иначе false.

Если для iteratee указан объект, созданная функция обратного вызова в стиле _.matches возвращает true для элементов, имеющих свойства данного объекта, иначе false.

Многие методы lodash защищены, чтобы работать в качестве функций обратного вызова для методов, таких как _.every, _.filter, _.map, _.mapValues, _.reject и _.some.

Защищенные методы:
ary, callback, chunk, clone, create, curry, curryRight, drop, dropRight, every, fill, flatten, invert, max, min, parseInt, slice, sortBy, take, takeRight, template, trim, trimLeft, trimRight, trunc, random, range, sample, some, sum, uniq, и words

Псевдонимы

_.collect

Аргументы

  1. collection (Массив|Объект|строка): Коллекция для итерирования.
  2. [iteratee=_.identity] (Функция|Объект|строка): Функция, вызываемая на каждой итерации.
  3. [thisArg] (*): Привязка this к iteratee.

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

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

Пример

function timesThree(n) {
  return n * 3;
}
 
_.map([1, 2], timesThree);
// => [3, 6]
 
_.map({ 'a': 1, 'b': 2 }, timesThree);
// => [3, 6] (iteration order is not guaranteed)
 

var users = [
  { 'user': 'barney' },

  { 'user': 'fred' }
];
 
// using the `_.property` callback shorthand
_.map(users, 'user');
// => ['barney', 'fred']

_.partition(collection, [predicate=_.identity], [thisArg])
source npm package

Создаёт массив элементов, разделенных на две группы. Первая группа содержит элементы, для которых predicate возвращает истинное значение, а вторая — элементы, для которых predicate возвращает ложное значение. Функция предикат привязана к thisArg и вызывается с тремя аргументами: (значение, индекс|ключ, коллекция).

Если для predicate указано имя свойства, созданная функция обратного вызова в стиле _.property возвращает значение свойства данного элемента.

Если для thisArg также указано значение, созданная функция обратного вызова в стиле _.matchesProperty возвращает true для элементов, имеющих соответствующее значение свойства, иначе false.

Если для predicate указан объект, созданная функция обратного вызова в стиле _.matches возвращает true для элементов, имеющих свойства данного объекта, иначе false.

Аргументы

  1. collection (Массив|Объект|строка): Коллекция для итерирования.
  2. [predicate=_.identity] (Функция|Объект|строка): Функция, вызываемая на каждой итерации.
  3. [thisArg] (*): Привязка this к predicate.

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

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

Пример

_.partition([1, 2, 3], function(n) {
  return n % 2;
});
// => [[1, 3], [2]]
 
_.partition([1.2, 2.3, 3.4], function(n) {
  return this.floor(n) % 2;
}, Math);
// => [[1.2, 3.4], [2.3]]
 

var users = [
  { 'user': 'barney',  'age': 36, 'active': false },

  { 'user': 'fred',    'age': 40, 'active': true },

  { 'user': 'pebbles', 'age': 1,  'active': false }
];
 

var mapper = function(array) {
  return _.pluck(array, 'user');
};
 
// using the `_.matches` callback shorthand
_.map(_.partition(users, { 'age': 1, 'active': false }), mapper);
// => [['pebbles'], ['barney', 'fred']]
 
// using the `_.matchesProperty` callback shorthand
_.map(_.partition(users, 'active', false), mapper);
// => [['barney', 'pebbles'], ['fred']]
 
// using the `_.property` callback shorthand
_.map(_.partition(users, 'active'), mapper);
// => [['fred'], ['barney', 'pebbles']]

_.pluck(collection, path)
source npm package

Возвращает значение свойства path от всех элементов в collection.

Аргументы

  1. collection (Массив|Объект|строка): Коллекция для итерирования.
  2. path (Массив|строка): Путь к свойству для извлечения.

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

(Массив): Возвращает значения свойств.

Пример

var users = [
  { 'user': 'barney', 'age': 36 },

  { 'user': 'fred',   'age': 40 }
];
 
_.pluck(users, 'user');
// => ['barney', 'fred']
 

var userIndex = _.indexBy(users, 'user');
_.pluck(userIndex, 'age');
// => [36, 40] (iteration order is not guaranteed)

_.reduce(collection, [iteratee=_.identity], [accumulator], [thisArg])
source npm package

Сводит collection к значению, которое является накопленным результатом выполнения каждого элемента в collection через iteratee, где каждое последующее вызов получает возвращаемое значение предыдущего. Если accumulator не указан, используется первый элемент collection в качестве начального значения. iteratee привязан к thisArg и вызывается с четырьмя аргументами:
(аккумулятор, значение, индекс|ключ, коллекция).

Многие методы lodash защищены, чтобы работать в качестве функций обратного вызова для методов, таких как _.reduce, _.reduceRight и _.transform.

Защищенные методы:
assign, defaults, defaultsDeep, includes, merge, sortByAll, и sortByOrder

Псевдонимы

_.foldl, _.inject

Аргументы

  1. collection (Массив|Объект|строка): Коллекция для итерирования.
  2. [iteratee=_.identity] (Функция): Функция, вызываемая на каждой итерации.
  3. [accumulator] (*): Начальное значение.
  4. [thisArg] (*): Привязка this к iteratee.

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

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

Пример

_.reduce([1, 2], function(total, n) {
  return total + n;
});
// => 3
 
_.reduce({ 'a': 1, 'b': 2 }, function(result, n, key) {
  result[key] = n * 3;
  return result;
}, {});
// => { 'a': 3, 'b': 6 } (iteration order is not guaranteed)

_.reduceRight(collection, [iteratee=_.identity], [accumulator], [thisArg])
source npm package

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

Псевдонимы

_.foldr

Аргументы

  1. collection (Массив|Объект|строка): Коллекция для итерирования.
  2. [iteratee=_.identity] (Функция): Функция, вызываемая на каждой итерации.
  3. [accumulator] (*): Начальное значение.
  4. [thisArg] (*): Привязка this к iteratee.

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

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

Пример

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], [thisArg])
source npm package

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

Аргументы

  1. collection (Массив|Объект|строка): Коллекция для итерирования.
  2. [predicate=_.identity] (Функция|Объект|строка): Функция, вызываемая на каждой итерации.
  3. [thisArg] (*): Привязка this к predicate.

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

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

Пример

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

var users = [
  { 'user': 'barney', 'age': 36, 'active': false },

  { 'user': 'fred',   'age': 40, 'active': true }
];
 
// using the `_.matches` callback shorthand
_.pluck(_.reject(users, { 'age': 40, 'active': true }), 'user');
// => ['barney']
 
// using the `_.matchesProperty` callback shorthand
_.pluck(_.reject(users, 'active', false), 'user');
// => ['fred']
 
// using the `_.property` callback shorthand
_.pluck(_.reject(users, 'active'), 'user');
// => ['barney']

_.sample(collection, [n])
source npm package

Получает случайный элемент или n случайных элементов из коллекции.

Аргументы

  1. collection (Массив|Объект|строка): Коллекция для выборки.
  2. [n] (число): Количество элементов для выборки.

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

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

Пример

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

_.shuffle(collection)
source npm package

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

Аргументы

  1. collection (Массив|Объект|строка): Коллекция для перемешивания.

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

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

Пример

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

_.size(collection)
source npm package

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

Аргументы

  1. collection (Массив|Объект|строка): Коллекция для проверки.

Возвращает

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

Пример

_.size([1, 2, 3]);
// => 3
 
_.size({ 'a': 1, 'b': 2 });
// => 2
 
_.size('pebbles');
// => 7

_.some(collection, [predicate=_.identity], [thisArg])
исходный код пакет npm

Проверяет, возвращает ли predicate истинное значение для любого элемента collection. Функция возвращает результат сразу после обнаружения подходящего значения и не итерирует по всей коллекции. Предикат привязан к thisArg и вызывается с тремя аргументами: (значение, индекс|ключ, коллекция).

Если для predicate указано имя свойства, созданный _.property стиль коллбека возвращает значение свойства данного элемента.

Если для thisArg также указано значение, созданный _.matchesProperty стиль коллбека возвращает true для элементов, имеющих соответствующее значение свойства, иначе false.

Если для predicate указан объект, созданный _.matches стиль коллбека возвращает true для элементов, имеющих свойства данного объекта, иначе false.

Псевдонимы

_.any

Аргументы

  1. collection (Массив|Объект|строка): Коллекция для итерации.
  2. [predicate=_.identity] (Функция|Объект|строка): Функция, вызываемая при каждой итерации.
  3. [thisArg] (*): Связывание this для predicate.

Возвращает

(логическое значение): Возвращает true если какой-либо элемент проходит проверку предиката, иначе false.

Пример

_.some([null, 0, 'yes', false], Boolean);
// => true
 

var users = [
  { 'user': 'barney', 'active': true },

  { 'user': 'fred',   'active': false }
];
 
// using the `_.matches` callback shorthand
_.some(users, { 'user': 'barney', 'active': false });
// => false
 
// using the `_.matchesProperty` callback shorthand
_.some(users, 'active', false);
// => true
 
// using the `_.property` callback shorthand
_.some(users, 'active');
// => true

_.sortBy(collection, [iteratee=_.identity], [thisArg])
исходный код пакет npm

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

Если для iteratee указано имя свойства, созданный _.property стиль коллбека возвращает значение свойства данного элемента.

Если для thisArg также указано значение, созданный _.matchesProperty стиль коллбека возвращает true для элементов, имеющих соответствующее значение свойства, иначе false.

Если для iteratee указан объект, созданный _.matches стиль коллбека возвращает true для элементов, имеющих свойства данного объекта, иначе false.

Аргументы

  1. collection (Массив|Объект|строка): Коллекция для итерации.
  2. [iteratee=_.identity] (Функция|Объект|строка): Функция, вызываемая при каждой итерации.
  3. [thisArg] (*): Связывание this для iteratee.

Возвращает

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

Пример

_.sortBy([1, 2, 3], function(n) {
  return Math.sin(n);
});
// => [3, 1, 2]
 
_.sortBy([1, 2, 3], function(n) {
  return this.sin(n);
}, Math);
// => [3, 1, 2]
 

var users = [
  { 'user': 'fred' },

  { 'user': 'pebbles' },

  { 'user': 'barney' }
];
 
// using the `_.property` callback shorthand
_.pluck(_.sortBy(users, 'user'), 'user');
// => ['barney', 'fred', 'pebbles']

_.sortByAll(collection, iteratees)
исходный код пакет npm

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

Если для итератора указано имя свойства, созданный _.property стиль коллбека возвращает значение свойства данного элемента.

Если для итератора указан объект, созданный _.matches стиль коллбека возвращает true для элементов, имеющих свойства данного объекта, иначе false.

Аргументы

  1. collection (Массив|Объект|строка): Коллекция для итерации.
  2. iteratees (...(Функция|Массив функций|Объект|Массив объектов|строка|Массив строк)): Итераторы для сортировки, указанные как отдельные значения или массивы значений.

Возвращает

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

Пример

var users = [
  { 'user': 'fred',   'age': 48 },

  { 'user': 'barney', 'age': 36 },

  { 'user': 'fred',   'age': 42 },

  { 'user': 'barney', 'age': 34 }
];
 
_.map(_.sortByAll(users, ['user', 'age']), _.values);
// => [['barney', 34], ['barney', 36], ['fred', 42], ['fred', 48]]
 
_.map(_.sortByAll(users, 'user', function(chr) {
  return Math.floor(chr.age / 10);
}), _.values);
// => [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 42]]

_.sortByOrder(collection, iteratees, [orders])
исходный код пакет npm

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

Если для итератора указано имя свойства, созданный _.property стиль коллбека возвращает значение свойства данного элемента.

Если для итератора указан объект, созданный _.matches стиль коллбека возвращает true для элементов, имеющих свойства данного объекта, иначе false.

Аргументы

  1. collection (Массив|Объект|строка): Коллекция для итерации.
  2. iteratees (Массив функций|Массив объектов|Массив строк): Итераторы для сортировки.
  3. [orders] (Массив логических значений): Порядок сортировки iteratees.

Возвращает

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

Пример

var users = [
  { 'user': 'fred',   'age': 48 },

  { 'user': 'barney', 'age': 34 },

  { 'user': 'fred',   'age': 42 },

  { 'user': 'barney', 'age': 36 }
];
 
// sort by `user` in ascending order and by `age` in descending order
_.map(_.sortByOrder(users, ['user', 'age'], ['asc', 'desc']), _.values);
// => [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 42]]

_.where(collection, source)
исходный код пакет npm

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

Примечание: Этот метод поддерживает сравнение массивов, булевых значений, Date объектов, чисел, Object объектов, регулярных выражений и строк. Объекты сравниваются по своим собственным, а не унаследованным, перечисляемым свойствам. Для сравнения значения только собственного или унаследованного свойства см. _.matchesProperty.

Аргументы

  1. collection (Массив|Объект|строка): Коллекция для поиска.
  2. source (Объект): Объект значений свойств для соответствия.

Возвращает

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

Пример

var users = [
  { 'user': 'barney', 'age': 36, 'active': false, 'pets': ['hoppy'] },

  { 'user': 'fred',   'age': 40, 'active': true, 'pets': ['baby puss', 'dino'] }
];
 
_.pluck(_.where(users, { 'age': 36, 'active': false }), 'user');
// => ['barney']
 
_.pluck(_.where(users, { 'pets': ['dino'] }), 'user');
// => ['fred']

Методы “Дата”

_.now
исходный код пакет npm

Получает количество миллисекунд, прошедших с эпохи Unix (1 января 1970 00:00:00 по UTC).

Пример

_.defer(function(stamp) {
  console.log(_.now() - stamp);
}, _.now());
// => logs the number of milliseconds it took for the deferred function to be invoked

Методы “Функция”

_.after(n, func)
исходный код пакет npm

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

Аргументы

  1. n (число): Количество вызовов до вызова func.
  2. func (Функция): Функция, которую необходимо ограничить.

Возвращает

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

Пример

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])
исходный код пакет npm

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

Аргументы

  1. func (Функция): Функция, для которой необходимо ограничить аргументы.
  2. [n=func.length] (число): Ограничение арности.

Возвращает

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

Пример

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

_.before(n, func)
исходный код пакет npm

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

Аргументы

  1. n (число): Количество вызовов, после которого func больше не вызывается.
  2. func (Функция): Функция, которую необходимо ограничить.

Возвращает

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

Пример

jQuery('#add').on('click', _.before(5, addContactToList));
// => allows adding up to 4 contacts to the list

_.bind(func, thisArg, [partials])
исходный код пакет npm

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

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

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

Аргументы

  1. func (Функция): Функция, которую необходимо привязать.
  2. thisArg (*): Связывание this для func.
  3. [partials] (...*): Аргументы, которые необходимо частично применить.

Возвращает

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

Пример

var greet = function(greeting, punctuation) {
  return greeting + ' ' + this.user + punctuation;
};
 

var object = { 'user': 'fred' };
 

var bound = _.bind(greet, object, 'hi');

bound('!');
// => 'hi fred!'
 
// using placeholders

var bound = _.bind(greet, object, _, '!');

bound('hi');
// => 'hi fred!'

_.bindAll(object, [methodNames])
источник пакет npm

Связывает методы объекта с самим объектом, перезаписывая существующий метод. Имена методов могут быть указаны как отдельные аргументы или как массивы имён методов. Если имена методов не указаны, все перечисляемые свойства-функции, собственные и унаследованные, объекта object связываются.

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

Аргументы

  1. object (Объект): Объект, к которому нужно привязать и назначить связанные методы.
  2. [methodNames] (...(строка|массив строк)): Имена методов объекта для привязки, указанные как отдельные имена методов или массивы имён методов.

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

(Объект): Возвращает object.

Пример

var view = {
  'label': 'docs',

  'onClick': function() {
    console.log('clicked ' + this.label);
  }
};
 
_.bindAll(view);

jQuery('#docs').on('click', view.onClick);
// => logs 'clicked docs' when the element is clicked

_.bindKey(object, key, [partials])
источник пакет npm

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

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

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

Аргументы

  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!'
 
// using placeholders

var bound = _.bindKey(object, 'greet', _, '!');

bound('hi');
// => 'hiya fred!'

_.curry(func, [arity=func.length])
источник пакет npm

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

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

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

Аргументы

  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]
 
// using placeholders

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

_.curryRight(func, [arity=func.length])
источник пакет npm

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

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

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

Аргументы

  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]
 
// using placeholders

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

_.debounce(func, [wait=0], [options])
источник пакет npm

Создаёт отложенную функцию, которая откладывает вызов func до истечения wait миллисекунд с момента последнего вызова отложенной функции. Отложенная функция имеет метод cancel для отмены отложенных вызовов. Укажите объект options, чтобы указать, что func должен быть вызван на ведущем и/или завершающем крае wait тайм-аута. Последующие вызовы отложенной функции возвращают результат последнего вызова func.


Примечание: Если leading и trailing опции true, func вызывается только на завершающем крае тайм-аута, если отложенная функция вызывается более одного раза во время wait тайм-аута.

См. статью Дэвида Корбахо для получения подробностей о различиях между _.debounce и _.throttle.

Аргументы

  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 the click event is fired, debouncing subsequent calls

jQuery('#postbox').on('click', _.debounce(sendMail, 300, {
  'leading': true,

  'trailing': false
}));
 
// ensure `batchLog` is invoked once after 1 second of debounced calls

var source = new EventSource('/stream');

jQuery(source).on('message', _.debounce(batchLog, 250, {
  'maxWait': 1000

}));
 
// cancel a debounced call

var todoChanges = _.debounce(batchLog, 1000);

Object.observe(models.todo, todoChanges);
 

Object.observe(models, function(changes) {
  if (_.find(changes, { 'user': 'todo', 'type': 'delete'})) {
    todoChanges.cancel();
  }
}, ['delete']);
 
// ...at some point `models.todo` is changed
models.todo.completed = true;
 
// ...before 1 second has passed `models.todo` is deleted
// which cancels the debounced `todoChanges` call
delete models.todo;

_.defer(func, [args])
источник пакет npm

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

Аргументы

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

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

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

Пример

_.defer(function(text) {
  console.log(text);
}, 'deferred');
// logs 'deferred' after one or more milliseconds

_.delay(func, wait, [args])
источник пакет npm

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

Аргументы

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

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

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

Пример

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

_.flow([funcs])
источник пакет npm

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

Аргументы

  1. [funcs] (...Функция): Функции для вызова.

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

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

Пример

function square(n) {
  return n * n;
}
 

var addSquare = _.flow(_.add, square);

addSquare(1, 2);
// => 9

_.flowRight([funcs])
источник пакет npm

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

Псевдонимы

_.backflow, _.compose

Аргументы

  1. [funcs] (...Функция): Функции для вызова.

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

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

Пример

function square(n) {
  return n * n;
}
 

var addSquare = _.flowRight(square, _.add);

addSquare(1, 2);
// => 9

_.memoize(func, [resolver])
источник пакет npm

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

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

Аргументы

  1. func (Функция): Функция, результат которой нужно запоминать.
  2. [resolver] (Функция): Функция для определения ключа кэша.

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

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

Пример

var upperCase = _.memoize(function(string) {
  return string.toUpperCase();
});
 

upperCase('fred');
// => 'FRED'
 
// modifying the result cache
upperCase.cache.set('fred', 'BARNEY');

upperCase('fred');
// => 'BARNEY'
 
// replacing `_.memoize.Cache`

var object = { 'user': 'fred' };

var other = { 'user': 'barney' };

var identity = _.memoize(_.identity);
 

identity(object);
// => { 'user': 'fred' }

identity(other);
// => { 'user': 'fred' }
 
_.memoize.Cache = WeakMap;

var identity = _.memoize(_.identity);
 

identity(object);
// => { 'user': 'fred' }

identity(other);
// => { 'user': 'barney' }

_.modArgs(func, [transforms])
источник пакет npm

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

Аргументы

  1. func (Функция): Функция, которую нужно обернуть.
  2. [transforms] (...(Функция|Массив функций)): Функции для преобразования аргументов, указанные как отдельные функции или массивы функций.

Возвращает

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

Пример

function doubled(n) {
  return n * 2;
}
 

function square(n) {
  return n * n;
}
 

var modded = _.modArgs(function(x, y) {
  return [x, y];
}, square, doubled);
 

modded(1, 2);
// => [1, 4]
 

modded(5, 10);
// => [25, 20]

_.negate(predicate)
исходный код пакет npm

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

Аргументы

  1. predicate (Функция): Предикат, который нужно инвертировать.

Возвращает

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

Пример

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

_.once(func)
исходный код пакет npm

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

Аргументы

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

Возвращает

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

Пример

var initialize = _.once(createApplication);

initialize();

initialize();
// `initialize` invokes `createApplication` once

_.partial(func, [partials])
исходный код пакет npm

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

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

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

Аргументы

  1. func (Функция): Функция, к которой частично применяются аргументы.
  2. [partials] (...*): Аргументы, которые будут частично применены.

Возвращает

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

Пример

var greet = function(greeting, name) {
  return greeting + ' ' + name;
};
 

var sayHelloTo = _.partial(greet, 'hello');

sayHelloTo('fred');
// => 'hello fred'
 
// using placeholders

var greetFred = _.partial(greet, _, 'fred');

greetFred('hi');
// => 'hi fred'

_.partialRight(func, [partials])
исходный код пакет npm

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

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

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

Аргументы

  1. func (Функция): Функция, к которой частично применяются аргументы.
  2. [partials] (...*): Аргументы, которые будут частично применены.

Возвращает

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

Пример

var greet = function(greeting, name) {
  return greeting + ' ' + name;
};
 

var greetFred = _.partialRight(greet, 'fred');

greetFred('hi');
// => 'hi fred'
 
// using placeholders

var sayHelloTo = _.partialRight(greet, 'hello', _);

sayHelloTo('fred');
// => 'hello fred'

_.rearg(func, indexes)
исходный код пакет npm

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

Аргументы

  1. func (Функция): Функция, для которой нужно переставить аргументы.
  2. indexes (...(число|Массив чисел)): Индексы аргументов, переставленные в виде отдельных индексов или массивов индексов.

Возвращает

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

Пример

var rearged = _.rearg(function(a, b, c) {
  return [a, b, c];
}, 2, 0, 1);
 

rearged('b', 'c', 'a')
// => ['a', 'b', 'c']
 

var map = _.rearg(_.map, [1, 0]);

map(function(n) {
  return n * 3;
}, [1, 2, 3]);
// => [3, 6, 9]

_.restParam(func, [start=func.length-1])
исходный код пакет npm

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

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

Аргументы

  1. func (Функция): Функция, к которой нужно применить rest параметр.
  2. [start=func.length-1] (число): Начальная позиция rest параметра.

Возвращает

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

Пример

var say = _.restParam(function(what, names) {
  return what + ' ' + _.initial(names).join(', ') +
    (_.size(names) > 1 ? ', & ' : '') + _.last(names);
});
 

say('hello', 'fred', 'barney', 'pebbles');
// => 'hello fred, barney, & pebbles'

_.spread(func)
исходный код пакет npm

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

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

Аргументы

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

Возвращает

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

Пример

var say = _.spread(function(who, what) {
  return who + ' says ' + what;
});
 

say(['fred', 'hello']);
// => 'fred says hello'
 
// with a Promise

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])
исходный код пакет npm

Создаёт ограниченную по частоте функцию, которая вызывает func не более одного раза в каждые wait миллисекунд. Ограниченная функция имеет метод cancel для отмены отложенных вызовов. Используйте объект options, чтобы указать, что func должен вызываться в начале и/или конце wait тайм-аута. Последующие вызовы ограниченной функции возвращают результат последнего вызова func.

Примечание: Если leading и trailing опции равны true, func вызывается только по окончании тайм-аута, если ограниченная функция вызывается более одного раза во время wait тайм-аута.

См. статью Дэвида Корбахо для получения подробной информации о различиях между _.throttle и _.debounce.

Аргументы

  1. func (Функция): Функция, которую нужно ограничить по частоте.
  2. [wait=0] (число): Количество миллисекунд для ограничения вызовов.
  3. [options] (Объект): Объект опций.
  4. [options.leading=true] (логическое значение): Указать вызов в начале тайм-аута.
  5. [options.trailing=true] (логическое значение): Указать вызов в конце тайм-аута.

Возвращает

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

Пример

// 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

jQuery('.interactive').on('click', _.throttle(renewToken, 300000, {
  'trailing': false
}));
 
// cancel a trailing throttled call

jQuery(window).on('popstate', throttled.cancel);

_.wrap(value, wrapper)
исходный код пакет npm

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

Аргументы

  1. value (*): Значение, которое нужно обернуть.
  2. wrapper (Функция): Функция-обёртка.

Возвращает

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

Пример

var p = _.wrap(_.escape, function(func, text) {
  return '<p>' + func(text) + '</p>';
});
 

p('fred, barney, & pebbles');
// => '<p>fred, barney, &ampamp; pebbles</p>'

Методы «Lang»

_.clone(value, [isDeep], [customizer], [thisArg])
исходный код пакет npm

Создаёт копию value. Если isDeep имеет значение true, вложенные объекты клонируются, в противном случае они присваиваются по ссылке. Если customizer указан, он вызывается для создания клонированных значений. Если customizer возвращает undefined, метод обрабатывает клонирование самостоятельно. customizer привязан к thisArg и вызывается с максимум тремя аргументами; (значение [, индекс|ключ, объект]).

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

Аргументы

  1. value (*): Значение, которое нужно скопировать.
  2. [isDeep] (логическое значение): Указать глубокое клонирование.
  3. [customizer] (Функция): Функция для настройки клонирования значений.
  4. [thisArg] (*): Контекст this для customizer.

Возвращает

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

Пример

var users = [
  { 'user': 'barney' },

  { 'user': 'fred' }
];
 

var shallow = _.clone(users);
shallow[0] === users[0];
// => true
 

var deep = _.clone(users, true);
deep[0] === users[0];
// => false
 
// using a customizer callback

var el = _.clone(document.body, function(value) {
  if (_.isElement(value)) {
    return value.cloneNode(false);
  }
});
 
el === document.body

// => false
el.nodeName

// => BODY
el.childNodes.length;
// => 0

_.cloneDeep(value, [customizer], [thisArg])
исходный код пакет npm

Создаёт глубокую копию value. Если предоставлен customizer, он вызывается для создания скопированных значений. Если customizer возвращает undefined, клонирование обрабатывается этим методом. customizer привязан к thisArg и вызывается с до трёх аргументов; (значение [, индекс|ключ, объект]).

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

Аргументы

  1. value (*): Значение для глубокого клонирования.
  2. [customizer] (Функция): Функция для настройки клонирования значений.
  3. [thisArg] (*): Связывание this для customizer.

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

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

Пример

var users = [
  { 'user': 'barney' },

  { 'user': 'fred' }
];
 

var deep = _.cloneDeep(users);
deep[0] === users[0];
// => false
 
// using a customizer callback

var el = _.cloneDeep(document.body, function(value) {
  if (_.isElement(value)) {
    return value.cloneNode(true);
  }
});
 
el === document.body

// => false
el.nodeName

// => BODY
el.childNodes.length;
// => 20

_.gt(value, other)
исходный код пакет npm

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

Аргументы

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

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

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

Пример

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

_.gte(value, other)
исходный код пакет npm

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

Аргументы

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

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

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

Пример

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

_.isArguments(value)
исходный код пакет npm

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

Аргументы

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

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

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

Пример

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

_.isArray(value)
исходный код пакет npm

Проверяет, является ли value объектом типа Array.

Аргументы

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

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

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

Пример

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

_.isBoolean(value)
исходный код пакет npm

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

Аргументы

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

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

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

Пример

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

_.isDate(value)
исходный код пакет npm

Проверяет, является ли value объектом типа Date.

Аргументы

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

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

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

Пример

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

_.isElement(value)
source npm package

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

Аргументы

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

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

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

Пример

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

_.isEmpty(value)
source npm package

Проверяет, является ли value пустым. Значение считается пустым, если это не arguments объект, массив, строка или коллекция, подобная jQuery, с длиной больше 0, или объект с собственными перечисляемыми свойствами.

Аргументы

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

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

(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, [customizer], [thisArg])
source npm package

Производит глубокое сравнение двух значений, чтобы определить, эквивалентны ли они. Если customizer предоставлен, он вызывается для сравнения значений. Если customizer возвращает undefined, сравнения обрабатываются методом вместо этого. customizer привязан к thisArg и вызывается с максимум тремя аргументами: (value, other [, index|key]).

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

Псевдонимы

_.eq

Аргументы

  1. value (*): Значение для сравнения.
  2. other (*): Другое значение для сравнения.
  3. [customizer] (Function): Функция для настройки сравнения значений.
  4. [thisArg] (*): Связывание контекста вызова customizer.

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

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

Пример

var object = { 'user': 'fred' };

var other = { 'user': 'fred' };
 
object == other;
// => false
 
_.isEqual(object, other);
// => true
 
// using a customizer callback

var array = ['hello', 'goodbye'];

var other = ['hi', 'goodbye'];
 
_.isEqual(array, other, function(value, other) {
  if (_.every([value, other], RegExp.prototype.test, /^h(?:i|ello)$/)) {
    return true;
  }
});
// => true

_.isError(value)
source npm package

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

Аргументы

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

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

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

Пример

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

_.isFinite(value)
source npm package

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

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

Аргументы

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

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

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

Пример

_.isFinite(10);
// => true
 
_.isFinite('10');
// => false
 
_.isFinite(true);
// => false
 
_.isFinite(Object(10));
// => false
 
_.isFinite(Infinity);
// => false

_.isFunction(value)
source npm package

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

Аргументы

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

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

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

Пример

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

_.isMatch(object, source, [customizer], [thisArg])
source npm package

Выполняет глубокое сравнение между object и source для определения, содержит ли object эквивалентные значения свойств. Если customizer предоставлен, он вызывается для сравнения значений. Если customizer возвращает undefined, сравнения обрабатываются методом вместо этого. customizer привязан к thisArg и вызывается с тремя аргументами: (value, other, index|key).

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

Аргументы

  1. object (Объект): Объект для проверки.
  2. source (Объект): Объект значений свойств для сопоставления.
  3. [customizer] (Функция): Функция для настройки сравнения значений.
  4. [thisArg] (*): Связывание this для customizer.

Возвращает

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

Пример

var object = { 'user': 'fred', 'age': 40 };
 
_.isMatch(object, { 'age': 40 });
// => true
 
_.isMatch(object, { 'age': 36 });
// => false
 
// using a customizer callback

var object = { 'greeting': 'hello' };

var source = { 'greeting': 'hi' };
 
_.isMatch(object, source, function(value, other) {
  return _.every([value, other], RegExp.prototype.test, /^h(?:i|ello)$/) || undefined;
});
// => true

_.isNaN(value)
исходный код пакет npm

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

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

Аргументы

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

Возвращает

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

Пример

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

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

_.isNative(value)
исходный код пакет npm

Проверяет, является ли value встроенной функцией.

Аргументы

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

Возвращает

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

Пример

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

_.isNull(value)
исходный код пакет npm

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

Аргументы

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

Возвращает

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

Пример

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

_.isNumber(value)
исходный код пакет npm

Проверяет, является ли value примитивом типа Number или объектом.

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

Аргументы

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

Возвращает

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

Пример

_.isNumber(8.4);
// => true
 
_.isNumber(NaN);
// => true
 
_.isNumber('8.4');
// => false

_.isObject(value)
исходный код пакет npm

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

Аргументы

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

Возвращает

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

Пример

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

_.isPlainObject(value)
исходный код пакет npm

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

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

Аргументы

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

Возвращает

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

Пример

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)
исходный код пакет npm

Проверяет, является ли value объектом типа RegExp.

Аргументы

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

Возвращает

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

Пример

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

_.isString(value)
исходный код пакет npm

Проверяет, является ли value примитивом или объектом типа String.

Аргументы

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

Возвращает

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

Пример

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

_.isTypedArray(value)
исходный код пакет npm

Проверяет, является ли value массивом типизированных данных.

Аргументы

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

Возвращает

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

Пример

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

_.isUndefined(value)
исходный код пакет npm

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

Аргументы

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

Возвращает

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

Пример

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

_.lt(value, other)
исходный код пакет npm

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

Аргументы

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

Возвращает

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

Пример

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

_.lte(value, other)
исходный код пакет npm

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

Аргументы

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

Возвращает

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

Пример

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

_.toArray(value)
исходный код пакет npm

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

Аргументы

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

Возвращает

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

Пример

(function() {
  return _.toArray(arguments).slice(1);
}(1, 2, 3));
// => [2, 3]

_.toPlainObject(value)
исходный код пакет npm

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

Аргументы

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

Возвращает

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

Пример

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 }

Методы “Math”

_.add(augend, addend)
исходный код пакет npm

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

Аргументы

  1. augend (число): Первое слагаемое.
  2. addend (число): Второе слагаемое.

Возвращает

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

Пример

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

_.ceil(n, [precision=0])
исходный код пакет npm

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

Аргументы

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

Возвращает

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

Пример

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

_.floor(n, [precision=0])
исходный код пакет npm

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

Аргументы

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

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

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

Пример

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

_.max(collection, [iteratee], [thisArg])
исходный код пакет npm

Возвращает максимальное значение из collection. Если collection пустое или ложное -Infinity возвращается. Если предоставлена функция iteratee, она вызывается для каждого значения в collection, чтобы сгенерировать критерий ранжирования. Функция iteratee привязана к thisArg и вызывается с тремя аргументами: (значение, индекс, коллекция).

Если для iteratee указано имя свойства, созданная функция обратного вызова типа _.property возвращает значение свойства данного элемента.

Если для thisArg также указано значение, созданная функция обратного вызова типа _.matchesProperty возвращает true для элементов с соответствующим значением свойства, иначе false.

Если для iteratee указан объект, созданная функция обратного вызова типа _.matches возвращает true для элементов, имеющих свойства данного объекта, иначе false.

Аргументы

  1. collection (Массив|Объект|строка): Коллекция для итерирования.
  2. [iteratee] (Функция|Объект|строка): Функция, вызываемая на каждой итерации.
  3. [thisArg] (*): Связывание this для iteratee.

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

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

Пример

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

var users = [
  { 'user': 'barney', 'age': 36 },

  { 'user': 'fred',   'age': 40 }
];
 
_.max(users, function(chr) {
  return chr.age;
});
// => { 'user': 'fred', 'age': 40 }
 
// using the `_.property` callback shorthand
_.max(users, 'age');
// => { 'user': 'fred', 'age': 40 }

_.min(collection, [iteratee], [thisArg])
исходный код пакет npm

Возвращает минимальное значение из collection. Если collection пустое или ложное Infinity возвращается. Если предоставлена функция iteratee, она вызывается для каждого значения в collection, чтобы сгенерировать критерий ранжирования. Функция iteratee привязана к thisArg и вызывается с тремя аргументами: (значение, индекс, коллекция).

Если для iteratee указано имя свойства, созданная функция обратного вызова типа _.property возвращает значение свойства данного элемента.

Если для thisArg также указано значение, созданная функция обратного вызова типа _.matchesProperty возвращает true для элементов с соответствующим значением свойства, иначе false.

Если для iteratee указан объект, созданная функция обратного вызова типа _.matches возвращает true для элементов, имеющих свойства данного объекта, иначе false.

Аргументы

  1. collection (Массив|Объект|строка): Коллекция для итерирования.
  2. [iteratee] (Функция|Объект|строка): Функция, вызываемая на каждой итерации.
  3. [thisArg] (*): Связывание this для iteratee.

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

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

Пример

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

var users = [
  { 'user': 'barney', 'age': 36 },

  { 'user': 'fred',   'age': 40 }
];
 
_.min(users, function(chr) {
  return chr.age;
});
// => { 'user': 'barney', 'age': 36 }
 
// using the `_.property` callback shorthand
_.min(users, 'age');
// => { 'user': 'barney', 'age': 36 }

_.round(n, [precision=0])
исходный код пакет npm

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

Аргументы

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

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

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

Пример

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

_.sum(collection, [iteratee], [thisArg])
исходный код пакет npm

Возвращает сумму значений в collection.

Аргументы

  1. collection (Массив|Объект|строка): Коллекция для итерирования.
  2. [iteratee] (Функция|Объект|строка): Функция, вызываемая на каждой итерации.
  3. [thisArg] (*): Связывание this для iteratee.

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

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

Пример

_.sum([4, 6]);
// => 10
 
_.sum({ 'a': 4, 'b': 6 });
// => 10
 

var objects = [
  { 'n': 4 },

  { 'n': 6 }
];
 
_.sum(objects, function(object) {
  return object.n;
});
// => 10
 
// using the `_.property` callback shorthand
_.sum(objects, 'n');
// => 10

Методы «Число»

_.inRange(n, [start=0], end)
исходный код пакет npm

Проверяет, находится ли n в диапазоне от start до, но не включая end. Если end не указано, оно устанавливается в start, а start устанавливается в 0.

Аргументы

  1. n (число): Число для проверки.
  2. [start=0] (число): Начало диапазона.
  3. end (число): Конец диапазона.

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

(логическое): Возвращает true, если n находится в диапазоне, иначе false.

Пример

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

_.random([min=0], [max=1], [floating])
исходный код пакет npm

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

Аргументы

  1. [min=0] (число): Минимальное возможное значение.
  2. [max=1] (число): Максимальное возможное значение.
  3. [floating] (логическое): Указать возврат числа с плавающей запятой.

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

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

Пример

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

Методы «Объект»

_.assign(object, [sources], [customizer], [thisArg])
исходный код пакет npm

Присваивает собственные перечисляемые свойства объекта(ов) source объекту destination. Последующие source объекты перезаписывают присвоения свойств предыдущих source объектов. Если customizer предоставлена, она вызывается для создания назначенных значений. customizer привязана к thisArg и вызывается с пятью аргументами:
(objectValue, sourceValue, key, object, source).

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

Псевдонимы

_.extend

Аргументы

  1. object (Объект): Объект назначения.
  2. [sources] (...Объект): Источник объектов.
  3. [customizer] (Функция): Функция для настройки назначенных значений.
  4. [thisArg] (*): Связывание this для customizer.

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

(Объект): Возвращает object.

Пример

_.assign({ 'user': 'barney' }, { 'age': 40 }, { 'user': 'fred' });
// => { 'user': 'fred', 'age': 40 }
 
// using a customizer callback

var defaults = _.partialRight(_.assign, function(value, other) {
  return _.isUndefined(value) ? other : value;
});
 

defaults({ 'user': 'barney' }, { 'age': 36 }, { 'user': 'fred' });
// => { 'user': 'barney', 'age': 36 }

_.create(prototype, [properties])
исходный код пакет npm

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

Аргументы

  1. prototype (Объект): Объект, от которого нужно унаследовать.
  2. [properties] (Объект): Свойства, которые нужно присвоить объекту.

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

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

Пример

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])
исходный код пакет npm

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

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

Аргументы

  1. object (Объект): Объект назначения.
  2. [sources] (...Объект): Источник объектов.

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

(Объект): Возвращает object.

Пример

_.defaults({ 'user': 'barney' }, { 'age': 36 }, { 'user': 'fred' });
// => { 'user': 'barney', 'age': 36 }

_.defaultsDeep(object, [sources])
исходный код пакет npm

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

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

Аргументы

  1. object (Объект): Объект назначения.
  2. [sources] (...Объект): Источник объектов.

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

(Объект): Возвращает object.

Пример

_.defaultsDeep({ 'user': { 'name': 'barney' } }, { 'user': { 'name': 'fred', 'age': 36 } });
// => { 'user': { 'name': 'barney', 'age': 36 } }

_.findKey(object, [predicate=_.identity], [thisArg])
исходный код пакет npm

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

Если для predicate задано имя свойства, созданный _.property стиль обратного вызова возвращает значение свойства данного элемента.

Если для thisArg также задано значение, созданный _.matchesProperty стиль обратного вызова возвращает true для элементов, у которых есть соответствующее значение свойства, иначе false.

Если для predicate задан объект, созданный _.matches стиль обратного вызова возвращает true для элементов, у которых есть свойства заданного объекта, иначе false.

Аргументы

  1. object (Объект): Объект для поиска.
  2. [predicate=_.identity] (Функция|Объект|строка): Функция, вызываемая на каждой итерации.
  3. [thisArg] (*): Связывание this для predicate.

Возвращает

(*): Возвращает ключ соответствующего элемента, иначе undefined.

Пример

var users = {
  'barney':  { 'age': 36, 'active': true },

  'fred':    { 'age': 40, 'active': false },

  'pebbles': { 'age': 1,  'active': true }
};
 
_.findKey(users, function(chr) {
  return chr.age < 40;
});
// => 'barney' (iteration order is not guaranteed)
 
// using the `_.matches` callback shorthand
_.findKey(users, { 'age': 1, 'active': true });
// => 'pebbles'
 
// using the `_.matchesProperty` callback shorthand
_.findKey(users, 'active', false);
// => 'fred'
 
// using the `_.property` callback shorthand
_.findKey(users, 'active');
// => 'barney'

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

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

Если для predicate задано имя свойства, созданный _.property стиль обратного вызова возвращает значение свойства данного элемента.

Если для thisArg также задано значение, созданный _.matchesProperty стиль обратного вызова возвращает true для элементов, у которых есть соответствующее значение свойства, иначе false.

Если для predicate задан объект, созданный _.matches стиль обратного вызова возвращает true для элементов, у которых есть свойства заданного объекта, иначе false.

Аргументы

  1. object (Объект): Объект для поиска.
  2. [predicate=_.identity] (Функция|Объект|строка): Функция, вызываемая на каждой итерации.
  3. [thisArg] (*): Связывание this для predicate.

Возвращает

(*): Возвращает ключ соответствующего элемента, иначе undefined.

Пример

var users = {
  'barney':  { 'age': 36, 'active': true },

  'fred':    { 'age': 40, 'active': false },

  'pebbles': { 'age': 1,  'active': true }
};
 
_.findLastKey(users, function(chr) {
  return chr.age < 40;
});
// => returns `pebbles` assuming `_.findKey` returns `barney`
 
// using the `_.matches` callback shorthand
_.findLastKey(users, { 'age': 36, 'active': true });
// => 'barney'
 
// using the `_.matchesProperty` callback shorthand
_.findLastKey(users, 'active', false);
// => 'fred'
 
// using the `_.property` callback shorthand
_.findLastKey(users, 'active');
// => 'pebbles'

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

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

Аргументы

  1. object (Объект): Объект для перебора.
  2. [iteratee=_.identity] (Функция): Функция, вызываемая на каждой итерации.
  3. [thisArg] (*): Связывание this для iteratee.

Возвращает

(Объект): Возвращает object.

Пример

function Foo() {
  this.a = 1;
  this.b = 2;
}
 
Foo.prototype.c = 3;
 
_.forIn(new Foo, function(value, key) {
  console.log(key);
});
// => logs 'a', 'b', and 'c' (iteration order is not guaranteed)

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

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

Аргументы

  1. object (Объект): Объект для перебора.
  2. [iteratee=_.identity] (Функция): Функция, вызываемая на каждой итерации.
  3. [thisArg] (*): Связывание this для iteratee.

Возвращает

(Объект): Возвращает object.

Пример

function Foo() {
  this.a = 1;
  this.b = 2;
}
 
Foo.prototype.c = 3;
 
_.forInRight(new Foo, function(value, key) {
  console.log(key);
});
// => logs 'c', 'b', and 'a' assuming `_.forIn ` logs 'a', 'b', and 'c'

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

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

Аргументы

  1. object (Объект): Объект для перебора.
  2. [iteratee=_.identity] (Функция): Функция, вызываемая на каждой итерации.
  3. [thisArg] (*): Связывание this для iteratee.

Возвращает

(Объект): Возвращает object.

Пример

function Foo() {
  this.a = 1;
  this.b = 2;
}
 
Foo.prototype.c = 3;
 
_.forOwn(new Foo, function(value, key) {
  console.log(key);
});
// => logs 'a' and 'b' (iteration order is not guaranteed)

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

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

Аргументы

  1. object (Объект): Объект для перебора.
  2. [iteratee=_.identity] (Функция): Функция, вызываемая на каждой итерации.
  3. [thisArg] (*): Связывание this для iteratee.

Возвращает

(Объект): Возвращает object.

Пример

function Foo() {
  this.a = 1;
  this.b = 2;
}
 
Foo.prototype.c = 3;
 
_.forOwnRight(new Foo, function(value, key) {
  console.log(key);
});
// => logs 'b' and 'a' assuming `_.forOwn` logs 'a' and 'b'

_.functions(object)
source npm package

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

Псевдонимы

_.methods

Аргументы

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

Возвращает

(Массив): Возвращает новый массив имён свойств.

Пример

_.functions(_);
// => ['after', 'ary', 'assign', ...]

_.get(object, path, [defaultValue])
source npm package

Получает значение свойства по path в object. Если полученное значение undefined используется значение по умолчанию defaultValue.

Аргументы

  1. object (Объект): Объект для запроса.
  2. path (Массив|строка): Путь к свойству для получения.
  3. [defaultValue] (*): Значение, возвращаемое, если результирующее значение undefined.

Возвращает

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

Пример

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 прямым свойством.

Аргументы

  1. object (Объект): Объект для запроса.
  2. path (Массив|строка): Путь для проверки.

Возвращает

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

Пример

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

_.invert(object, [multiValue])
source npm package

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

Аргументы

  1. object (Объект): Объект для инвертирования.
  2. [multiValue] (логическое): Разрешить несколько значений на ключ.

Возвращает

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

Пример

var object = { 'a': 1, 'b': 2, 'c': 1 };
 
_.invert(object);
// => { '1': 'c', '2': 'b' }
 
// with `multiValue`
_.invert(object, true);
// => { '1': ['a', 'c'], '2': ['b'] }

_.keys(object)
source npm package

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

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

Аргументы

  1. object (Объект): Объект для запроса.

Возвращает

(Массив): Возвращает массив имён свойств.

Пример

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.

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

Аргументы

  1. object (Объект): Объект для запроса.

Возвращает

(Массив): Возвращает массив имён свойств.

Пример

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], [thisArg])
source npm package

Обратное _.mapValues; этот метод создаёт объект с теми же значениями, что и в object и ключами, сгенерированными путём прохождения каждого собственного перечисляемого свойства object через iteratee.

Аргументы

  1. object (Объект): Объект для итерации.
  2. [iteratee=_.identity] (Функция|Объект|строка): Функция, вызываемая на каждой итерации.
  3. [thisArg] (*): Связывание this для iteratee.

Возвращает

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

Пример

_.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) {
  return key + value;
});
// => { 'a1': 1, 'b2': 2 }

_.mapValues(объект, [итератор=_.identity], [thisArg])
исходный код пакет npm

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

Если для iteratee задано имя свойства, созданный _.property стиль обратного вызова возвращает значение свойства данного элемента.

Если для thisArg также задано значение, созданный _.matchesProperty стиль обратного вызова возвращает true для элементов, которые имеют соответствующее значение свойства, в противном случае false.

Если для iteratee задан объект, созданный _.matches стиль обратного вызова возвращает true для элементов, которые имеют свойства заданного объекта, в противном случае false.

Аргументы

  1. object (Объект): Объект для итерации.
  2. [iteratee=_.identity] (Функция|Объект|строка): Функция, вызываемая на каждой итерации.
  3. [thisArg] (*): Связывание this для iteratee.

Возвращает

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

Пример

_.mapValues({ 'a': 1, 'b': 2 }, function(n) {
  return n * 3;
});
// => { 'a': 3, 'b': 6 }
 

var users = {
  'fred':    { 'user': 'fred',    'age': 40 },

  'pebbles': { 'user': 'pebbles', 'age': 1 }
};
 
// using the `_.property` callback shorthand
_.mapValues(users, 'age');
// => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)

_.merge(объект, [источники], [кастомизатор], [thisArg])
исходный код пакет npm

Рекурсивно объединяет собственные перечисляемые свойства объекта (объектов) источника, которые не разрешаются в undefined в целевой объект. Последующие источники перезаписывают назначения свойств предыдущих источников. Если customizer задан, он вызывается для создания объединённых значений целевых и исходных свойств. Если customizer возвращает undefined, объединение обрабатывается методом вместо этого. customizer связан с thisArg и вызывается с пятью аргументами: (значение объекта, значение источника, ключ, объект, источник).

Аргументы

  1. object (Объект): Целевой объект.
  2. [sources] (...Объект): Объекты источника.
  3. [customizer] (Функция): Функция для настройки назначенных значений.
  4. [thisArg] (*): Связывание this для customizer.

Возвращает

(Объект): Возвращает object.

Пример

var users = {
  'data': [{ 'user': 'barney' }, { 'user': 'fred' }]
};
 

var ages = {
  'data': [{ 'age': 36 }, { 'age': 40 }]
};
 
_.merge(users, ages);
// => { 'data': [{ 'user': 'barney', 'age': 36 }, { 'user': 'fred', 'age': 40 }] }
 
// using a customizer callback

var object = {
  'fruits': ['apple'],

  'vegetables': ['beet']
};
 

var other = {
  'fruits': ['banana'],

  'vegetables': ['carrot']
};
 
_.merge(object, other, function(a, b) {
  if (_.isArray(a)) {
    return a.concat(b);
  }
});
// => { 'fruits': ['apple', 'banana'], 'vegetables': ['beet', 'carrot'] }

_.omit(объект, [предикат], [thisArg])
исходный код пакет npm

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

Аргументы

  1. object (Объект): Исходный объект.
  2. [predicate] (...(строка|массив строк|Функция)): Функция, вызываемая на каждой итерации, или имена свойств для пропуска, заданные как отдельные имена свойств или массивы имён свойств.
  3. [thisArg] (*): Связывание this для predicate.

Возвращает

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

Пример

var object = { 'user': 'fred', 'age': 40 };
 
_.omit(object, 'age');
// => { 'user': 'fred' }
 
_.omit(object, _.isNumber);
// => { 'user': 'fred' }

_.pairs(объект)
исходный код пакет npm

Создаёт двумерный массив пар ключ-значение для object, например [[key1, value1], [key2, value2]].

Аргументы

  1. object (Объект): Объект для запроса.

Возвращает

(Массив): Возвращает новый массив пар ключ-значение.

Пример

_.pairs({ 'barney': 36, 'fred': 40 });
// => [['barney', 36], ['fred', 40]] (iteration order is not guaranteed)

_.pick(объект, [предикат], [thisArg])
исходный код пакет npm

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

Аргументы

  1. object (Объект): Исходный объект.
  2. [predicate] (...(строка|массив строк|Функция)): Функция, вызываемая на каждой итерации, или имена свойств для выбора, заданные как отдельные имена свойств или массивы имён свойств.
  3. [thisArg] (*): Связывание this для predicate.

Возвращает

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

Пример

var object = { 'user': 'fred', 'age': 40 };
 
_.pick(object, 'user');
// => { 'user': 'fred' }
 
_.pick(object, _.isString);
// => { 'user': 'fred' }

_.result(объект, путь, [значение по умолчанию])
исходный код пакет npm

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

Аргументы

  1. object (Объект): Объект для запроса.
  2. path (Массив|строка): Путь к свойству для разрешения.
  3. [defaultValue] (*): Возвращаемое значение, если результирующее значение undefined.

Возвращает

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

Пример

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.b.c', 'default');
// => 'default'
 
_.result(object, 'a.b.c', _.constant('default'));
// => 'default'

_.set(объект, путь, значение)
исходный код пакет npm

Устанавливает значение свойства path для object. Если часть path не существует, она создаётся.

Аргументы

  1. object (Объект): Объект для расширения.
  2. path (Массив|строка): Путь к свойству для установки.
  3. value (*): Значение для установки.

Возвращает

(Объект): Возвращает object.

Пример

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

_.transform(объект, [итератор=_.identity], [аккумулятора], [thisArg])
исходный код пакет npm

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

Аргументы

  1. object (Массив|Объект): Объект для итерации.
  2. [iteratee=_.identity] (Функция): Функция, вызываемая на каждой итерации.
  3. [accumulator] (*): Значение пользовательского аккумулятора.
  4. [thisArg] (*): Связывание this для iteratee.

Возвращает

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

Пример

_.transform([2, 3, 4], function(result, n) {
  result.push(n *= n);
  return n % 2 == 0;
});
// => [4, 9]
 
_.transform({ 'a': 1, 'b': 2 }, function(result, n, key) {
  result[key] = n * 3;
});
// => { 'a': 3, 'b': 6 }

_.values(объект)
исходный код пакет npm

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

Примечание: Значения, не являющиеся объектами, приводятся к объектам.

Аргументы

  1. object (Объект): Объект для запроса.

Возвращает

(Массив): Возвращает массив значений свойств.

Пример

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(объект)
исходный код пакет npm

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

Примечание: Значения, не являющиеся объектами, приводятся к объектам.

Аргументы

  1. object (Объект): Объект для запроса.

Возвращает

(Массив): Возвращает массив значений свойств.

Пример

function Foo() {
  this.a = 1;
  this.b = 2;
}
 
Foo.prototype.c = 3;
 
_.valuesIn(new Foo);
// => [1, 2, 3] (iteration order is not guaranteed)

Методы “Строка”

_.camelCase([строка=''])
исходный код пакет npm

Преобразует string в верхний регистр.

Аргументы

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

Возвращает

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

Пример

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

_.capitalize([строка=''])
исходный код пакет npm

Заглавная буква первой буквы string.

Аргументы

  1. [string=''] (строка): Строка для приведения к верхнему регистру.

Возвращает

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

Пример

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

_.deburr([строка=''])
исходный код пакет npm

Преобразует string, заменяя дополнительные латинские буквы на базовые латинские и удаляя диакритические знаки.

Аргументы

  1. [string=''] (строка): Строка, которую нужно преобразовать.

Возвращает

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

Пример

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

_.endsWith([строка=''], [целевая строка], [позиция=длина строки])
исходный код пакет npm

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

Аргументы

  1. [string=''] (строка): Строка для проверки.
  2. [target] (строка): Целевая строка для проверки.
  3. [position=string.length] (число): Позиция для начала проверки.

Возвращает

(булево): Возвращает true если string заканчивается на target, в противном случае false.

Пример

_.endsWith('abc', 'c');
// => true
 
_.endsWith('abc', 'b');
// => false
 
_.endsWith('abc', 'b', 2);
// => true

_.escape([строка=''])
исходный код пакет npm

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

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

Хотя символ ">" экранирован для симметрии, символы типа ">" и "/" не нуждаются в экранировании в HTML и не имеют особого значения, если они не входят в тег или нецитируемое значение атрибута. См. статью Матиаса Биненса (в разделе "полусвязанный интересный факт") для получения дополнительной информации.

Обратные кавычки экранируются, так как в Internet Explorer < 9, они могут выйти за пределы значений атрибутов или HTML-комментариев. См. #59, #102, #108, и #133 в Справочнике по безопасности HTML5 для получения дополнительной информации.

При работе с HTML всегда следует цитировать значения атрибутов, чтобы уменьшить векторы XSS.

Аргументы

  1. [string=''] (строка): Строка для экранирования.

Возвращает

(строка): Возвращает экранированную строку.

Пример

_.escape('fred, barney, & pebbles');
// => 'fred, barney, &ampamp; pebbles'

_.escapeRegExp([строка=''])
исходный код пакет npm

Экранирует RegExp специальные символы "", "/", "^", "$", ".", "|", "?", "*", "+", "(", ")", "[", "]", "{" и "}" в string.

Аргументы

  1. [string=''] (строка): Строка для экранирования.

Возвращает

(строка): Возвращает экранированную строку.

Пример

_.escapeRegExp('[lodash](https://lodash.com/)');
// => '\[lodash\]\(https:\/\/lodash\.com\/\)'

_.kebabCase([строка=''])
исходный код пакет npm

Преобразует string в кебаб-кейс.

Аргументы

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

Возвращает

(строка): Возвращает строку в кебаб-кейс.

Пример

_.kebabCase('Foo Bar');
// => 'foo-bar'
 
_.kebabCase('fooBar');
// => 'foo-bar'
 
_.kebabCase('__foo_bar__');
// => 'foo-bar'

_.pad([строка=''], [длина=0], [символы=' '])
исходный код пакет npm

Добавляет пробелы слева и справа к string, если она короче length. Символы заполнения усекаются, если они не делятся на length.

Аргументы

  1. [string=''] (строка): Строка для заполнения.
  2. [length=0] (число): Длина заполнения.
  3. [chars=' '] (строка): Строка, используемая для заполнения.

Возвращает

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

Пример

_.pad('abc', 8);
// => '  abc   '
 
_.pad('abc', 8, '_-');
// => '_-abc_-_'
 
_.pad('abc', 3);
// => 'abc'

_.padLeft([строка=''], [длина=0], [символы=' '])
исходный код пакет npm

Добавляет пробелы слева к string, если она короче length. Символы заполнения усекаются, если они превышают length.

Аргументы

  1. [string=''] (строка): Строка для заполнения.
  2. [length=0] (число): Длина заполнения.
  3. [chars=' '] (строка): Строка, используемая для заполнения.

Возвращает

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

Пример

_.padLeft('abc', 6);
// => '   abc'
 
_.padLeft('abc', 6, '_-');
// => '_-_abc'
 
_.padLeft('abc', 3);
// => 'abc'

_.padRight([строка=''], [длина=0], [символы=' '])
исходный код пакет npm

Добавляет пробелы справа к string если она короче length. Символы заполнения усекаются, если они превышают length.

Аргументы

  1. [string=''] (строка): Строка для заполнения.
  2. [length=0] (число): Длина заполнения.
  3. [chars=' '] (строка): Строка, используемая для заполнения.

Возвращает

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

Пример

_.padRight('abc', 6);
// => 'abc   '
 
_.padRight('abc', 6, '_-');
// => 'abc_-_'
 
_.padRight('abc', 3);
// => 'abc'

_.parseInt(строка, [основание])
исходный код пакет npm

Преобразует string в целое число заданного основания. Если radix равно undefined или 0, используется основание 10, за исключением случаев, когда value является шестнадцатеричным, в этом случае используется основание 16.

Примечание: Этот метод соответствует реализации ES5 parseInt.

Аргументы

  1. string (строка): Строка для преобразования.
  2. [radix] (число): Основание для интерпретации value.

Возвращает

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

Пример

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

_.repeat([строка=''], [n=0])
исходный код пакет npm

Повторяет заданную строку n раз.

Аргументы

  1. [string=''] (строка): Строка для повторения.
  2. [n=0] (число): Количество повторений.

Возвращает

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

Пример

_.repeat('*', 3);
// => '***'
 
_.repeat('abc', 2);
// => 'abcabc'
 
_.repeat('abc', 0);
// => ''

_.snakeCase([строка=''])
исходный код пакет npm

Преобразует string в змеиный регистр.

Аргументы

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

Возвращает

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

Пример

_.snakeCase('Foo Bar');
// => 'foo_bar'
 
_.snakeCase('fooBar');
// => 'foo_bar'
 
_.snakeCase('--foo-bar');
// => 'foo_bar'

_.startCase([строка=''])
исходный код пакет npm

Преобразует string в регистр с большой буквы в начале каждого слова.

Аргументы

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

Возвращает

(строка): Возвращает строку с большой буквы в начале каждого слова.

Пример

_.startCase('--foo-bar');
// => 'Foo Bar'
 
_.startCase('fooBar');
// => 'Foo Bar'
 
_.startCase('__foo_bar__');
// => 'Foo Bar'

_.startsWith([строка=''], [целевая строка], [позиция=0])
исходный код пакет npm

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

Аргументы

  1. [string=''] (строка): Строка для проверки.
  2. [target] (строка): Целевая строка для проверки.
  3. [position=0] (число): Позиция для начала проверки.

Возвращает

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

Пример

_.startsWith('abc', 'a');
// => true
 
_.startsWith('abc', 'b');
// => false
 
_.startsWith('abc', 'b', 1);
// => true

_.template([строка=''], [опции])
исходный код пакет npm

Создаёт скомпилированную функцию шаблона, которая может интерполировать свойства данных в разделителях "interpolate", HTML-экранировать интерполированные свойства данных в разделителях "escape" и выполнять JavaScript-код в разделителях "evaluate". Свойства данных могут быть доступны как свободные переменные в шаблоне. Если объект настроек предоставлен, он имеет приоритет над значениями _.templateSettings.

Примечание: В сборке для разработки _.template использует sourceURLs для более удобной отладки.

Для получения дополнительной информации о предварительной компиляции шаблонов см. документацию по пользовательским сборкам lodash.

Для получения дополнительной информации о песочницах расширений Chrome см. документацию по расширениям Chrome.

Аргументы

  1. [string=''] (строка): Строка шаблона.
  2. [options] (объект): Объект опций.
  3. [options.escape] (RegExp): Разделитель HTML-экранирования.
  4. [options.evaluate] (RegExp): Разделитель "evaluate".
  5. [options.imports] (объект): Объект для импорта в шаблон в качестве свободных переменных.
  6. [options.interpolate] (RegExp): Разделитель "interpolate".
  7. [options.sourceURL] (строка): sourceURL скомпилированного источника шаблона.
  8. [options.variable] (строка): Имя переменной объекта данных.

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

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

Пример

// using the "interpolate" delimiter to create a compiled template

var compiled = _.template('hello <%= user %>!');

compiled({ 'user': 'fred' });
// => 'hello fred!'
 
// using the HTML "escape" delimiter to escape data property values

var compiled = _.template('<b><%- value %></b>');

compiled({ 'value': '<script>' });
// => '<b>&amplt;script&ampgt;</b>'
 
// using 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>'
 
// using the internal `print` function in "evaluate" delimiters

var compiled = _.template('<% print("hello " + user); %>!');

compiled({ 'user': 'barney' });
// => 'hello barney!'
 
// using the ES delimiter as an alternative to the default "interpolate" delimiter

var compiled = _.template('hello ${ user }!');

compiled({ 'user': 'pebbles' });
// => 'hello pebbles!'
 
// using custom template delimiters
_.templateSettings.interpolate = /{{([\s\S]+?)}}/g;

var compiled = _.template('hello {{ user }}!');

compiled({ 'user': 'mustache' });
// => 'hello mustache!'
 
// using backslashes to treat delimiters as plain text

var compiled = _.template('<%= "\\<%- value %\\>" %>');

compiled({ 'value': 'ignored' });
// => '<%- value %>'
 
// using 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>'
 
// using 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
 
// using 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;
// }
 
// using the `source` property to inline compiled templates for meaningful
// line numbers in error messages and a stack trace
fs.writeFileSync(path.join(cwd, 'jst.js'), '\

  var JST = {\

    "main": ' + _.template(mainText).source + '\

  };\

');

_.trim([string=''], [chars=whitespace])
источник пакет npm

Удаляет начальные и конечные пробелы или указанные символы из string.

Аргументы

  1. [string=''] (строка): Строка для обрезки.
  2. [chars=whitespace] (строка): Символы для обрезки.

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

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

Пример

_.trim('  abc  ');
// => 'abc'
 
_.trim('-_-abc-_-', '_-');
// => 'abc'
 
_.map(['  foo  ', '  bar  '], _.trim);
// => ['foo', 'bar']

_.trimLeft([string=''], [chars=whitespace])
источник пакет npm

Удаляет начальные пробелы или указанные символы из string.

Аргументы

  1. [string=''] (строка): Строка для обрезки.
  2. [chars=whitespace] (строка): Символы для обрезки.

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

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

Пример

_.trimLeft('  abc  ');
// => 'abc  '
 
_.trimLeft('-_-abc-_-', '_-');
// => 'abc-_-'

_.trimRight([string=''], [chars=whitespace])
источник пакет npm

Удаляет конечные пробелы или указанные символы из string.

Аргументы

  1. [string=''] (строка): Строка для обрезки.
  2. [chars=whitespace] (строка): Символы для обрезки.

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

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

Пример

_.trimRight('  abc  ');
// => '  abc'
 
_.trimRight('-_-abc-_-', '_-');
// => '-_-abc'

_.trunc([string=''], [options], [options.length=30], [options.omission='...'], [options.separator])
источник пакет npm

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

Аргументы

  1. [string=''] (строка): Строка для усечения.
  2. [options] (объект|число): Объект опций или максимальная длина строки.
  3. [options.length=30] (число): Максимальная длина строки.
  4. [options.omission='...'] (строка): Строка для обозначения опущения текста.
  5. [options.separator] (RegExp|строка): Шаблон разделителя для усечения.

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

(строка): Возвращает усечённую строку.

Пример

_.trunc('hi-diddly-ho there, neighborino');
// => 'hi-diddly-ho there, neighbo...'
 
_.trunc('hi-diddly-ho there, neighborino', 24);
// => 'hi-diddly-ho there, n...'
 
_.trunc('hi-diddly-ho there, neighborino', {
  'length': 24,

  'separator': ' '

});
// => 'hi-diddly-ho there,...'
 
_.trunc('hi-diddly-ho there, neighborino', {
  'length': 24,

  'separator': /,? +/

});
// => 'hi-diddly-ho there...'
 
_.trunc('hi-diddly-ho there, neighborino', {
  'omission': ' [...]'

});
// => 'hi-diddly-ho there, neig [...]'

_.unescape([string=''])
источник пакет npm

Обратная функция к _.escape; этот метод преобразует HTML-сущности &ampamp;, &amplt;, &ampgt;, &ampquot;, &amp#39;, и &amp#96; в string в соответствующие символы.

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

Аргументы

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

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

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

Пример

_.unescape('fred, barney, &ampamp; pebbles');
// => 'fred, barney, & pebbles'

_.words([string=''], [pattern])
источник пакет npm

Разбивает string на массив слов.

Аргументы

  1. [string=''] (строка): Строка для проверки.
  2. [pattern] (RegExp|строка): Шаблон для поиска слов.

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

(Массив): Возвращает слова из string.

Пример

_.words('fred, barney, & pebbles');
// => ['fred', 'barney', 'pebbles']
 
_.words('fred, barney, & pebbles', /[^, ]+/g);
// => ['fred', 'barney', '&', 'pebbles']

Методы «Утилит»

_.attempt(func)
источник пакет npm

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

Аргументы

  1. func (Функция): Функция для попытки.

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

(*): Возвращает результат func или объект ошибки.

Пример

// avoid throwing errors for invalid selectors

var elements = _.attempt(function(selector) {
  return document.querySelectorAll(selector);
}, '>_>');
 
if (_.isError(elements)) {
  elements = [];
}

_.callback([func=_.identity], [thisArg])
источник пакет npm

Создаёт функцию, которая вызывает func с контекстом this и аргументами созданной функции. Если func — это имя свойства, созданный коллбэк возвращает значение свойства для заданного элемента. Если func — это объект, созданный коллбэк возвращает true для элементов, содержащих эквивалентные свойства объекта; в противном случае возвращает false.

Псевдонимы

_.iteratee

Аргументы

  1. [func=_.identity] (*): Значение для преобразования в коллбэк.
  2. [thisArg] (*): Контекст this вызова func.

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

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

Пример

var users = [
  { 'user': 'barney', 'age': 36 },

  { 'user': 'fred',   'age': 40 }
];
 
// wrap to create custom callback shorthands
_.callback = _.wrap(_.callback, function(callback, func, thisArg) {
  var match = /^(.+?)__([gl]t)(.+)$/.exec(func);
  if (!match) {
    return callback(func, thisArg);
  }
  return function(object) {
    return match[2] == 'gt'

      ? object[match[1]] > match[3]
      : object[match[1]] < match[3];
  };
});
 
_.filter(users, 'age__gt36');
// => [{ 'user': 'fred', 'age': 40 }]

_.constant(value)
источник пакет npm

Создаёт функцию, которая возвращает value.

Аргументы

  1. value (*): Значение, которое должна возвращать новая функция.

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

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

Пример

var object = { 'user': 'fred' };

var getter = _.constant(object);
 

getter() === object;
// => true

_.identity(value)
источник пакет npm

Этот метод возвращает первый переданный ему аргумент.

Аргументы

  1. value (*): Любое значение.

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

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

Пример

var object = { 'user': 'fred' };
 
_.identity(object) === object;
// => true

_.matches(source)
источник пакет npm

Создаёт функцию, которая выполняет глубокое сравнение заданного объекта и source, возвращая true если заданный объект имеет эквивалентные значения свойств, в противном случае false.

Примечание: Этот метод поддерживает сравнение массивов, булевых значений, Date объектов, чисел, Object объектов, регулярных выражений и строк. Объекты сравниваются по собственным, а не унаследованным, перечисляемым свойствам. Для сравнения одного собственного или унаследованного значения свойства см. _.matchesProperty.

Аргументы

  1. source (Объект): Объект значений свойств для соответствия.

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

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

Пример

var users = [
  { 'user': 'barney', 'age': 36, 'active': true },

  { 'user': 'fred',   'age': 40, 'active': false }
];
 
_.filter(users, _.matches({ 'age': 40, 'active': false }));
// => [{ 'user': 'fred', 'age': 40, 'active': false }]

_.matchesProperty(path, srcValue)
источник пакет npm

Создаёт функцию, которая сравнивает значение свойства path заданного объекта со значением value.

Примечание: Этот метод поддерживает сравнение массивов, булевых значений, Date объектов, чисел, Object объектов, регулярных выражений и строк. Объекты сравниваются по собственным, а не унаследованным, перечисляемым свойствам.

Аргументы

  1. path (Массив|строка): Путь к свойству, значение которого необходимо получить.
  2. srcValue (*): Значение для сопоставления.

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

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

Пример

var users = [
  { 'user': 'barney' },

  { 'user': 'fred' }
];
 
_.find(users, _.matchesProperty('user', 'fred'));
// => { 'user': 'fred' }

_.method(path, [args])
источник пакет npm

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

Аргументы

  1. path (Массив|строка): Путь к методу для вызова.
  2. [args] (...*): Аргументы для вызова метода.

Возвращает

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

Пример

var objects = [
  { 'a': { 'b': { 'c': _.constant(2) } } },

  { 'a': { 'b': { 'c': _.constant(1) } } }
];
 
_.map(objects, _.method('a.b.c'));
// => [2, 1]
 
_.invoke(_.sortBy(objects, _.method(['a', 'b', 'c'])), 'a.b.c');
// => [1, 2]

_.methodOf(object, [args])
исходный код пакет npm

Обратная функция _.method; этот метод создает функцию, которая вызывает метод по заданному пути в object. Любые дополнительные аргументы передаются вызванному методу.

Аргументы

  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])
исходный код пакет npm

Добавляет все собственные перечисляемые свойства функций из источника в целевой объект. Если object является функцией, методы также добавляются в ее прототип.

Примечание: Используйте _.runInContext, чтобы создать чистую функцию lodash, чтобы избежать конфликтов, вызванных модификацией исходной функции.

Аргументы

  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()
исходный код пакет npm

Возвращает переменную _ к ее предыдущему значению и возвращает ссылку на функцию lodash.

Возвращает

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

Пример

var lodash = _.noConflict();

_.noop()
исходный код пакет npm

Функция без действий, которая возвращает undefined независимо от получаемых аргументов.

Пример

var object = { 'user': 'fred' };
 
_.noop(object) === undefined;
// => true

_.property(path)
исходный код пакет npm

Создает функцию, которая возвращает значение свойства по path заданного объекта.

Аргументы

  1. path (Массив|строка): Путь к свойству для получения.

Возвращает

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

Пример

var objects = [
  { 'a': { 'b': { 'c': 2 } } },

  { 'a': { 'b': { 'c': 1 } } }
];
 
_.map(objects, _.property('a.b.c'));
// => [2, 1]
 
_.pluck(_.sortBy(objects, _.property(['a', 'b', 'c'])), 'a.b.c');
// => [1, 2]

_.propertyOf(object)
исходный код пакет npm

Обратная функция _.property; этот метод создает функцию, которая возвращает значение свойства по заданному пути в object.

Аргументы

  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])
исходный код пакет npm

Создает массив чисел (положительных и/или отрицательных), продвигающихся от start до, но не включая, end. Если end не указано, оно устанавливается в start, а start устанавливается в 0. Если end меньше start, создается диапазон нулевой длины, если не указан отрицательный step.

Аргументы

  1. [start=0] (число): Начало диапазона.
  2. end (число): Конец диапазона.
  3. [step=1] (число): Значение для приращения или уменьшения.

Возвращает

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

Пример

_.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);
// => []

_.runInContext([context=root])
исходный код пакет npm

Создает новую чистую функцию lodash с использованием заданного объекта context.

Аргументы

  1. [context=root] (Объект): Объект контекста.

Возвращает

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

Пример

_.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
 
// using `context` to mock `Date#getTime` use in `_.now`

var mock = _.runInContext({
  'Date': function() {
    return { 'getTime': getTimeMock };
  }
});
 
// or creating a suped-up `defer` in Node.js

var defer = _.runInContext({ 'setTimeout': setImmediate }).defer;

_.times(n, [iteratee=_.identity], [thisArg])
исходный код пакет npm

Вызывает функцию iteratee n раз, возвращая массив результатов каждого вызова. iteratee привязана к thisArg и вызывается с одним аргументом; (индекс).

Аргументы

  1. n (число): Количество вызовов iteratee.
  2. [iteratee=_.identity] (Функция): Функция, вызываемая на каждой итерации.
  3. [thisArg] (*): Связывание this с iteratee.

Возвращает

(Массив): Возвращает массив результатов.

Пример

var diceRolls = _.times(3, _.partial(_.random, 1, 6, false));
// => [3, 6, 4]
 
_.times(3, function(n) {
  mage.castSpell(n);
});
// => invokes `mage.castSpell(n)` three times with `n` of `0`, `1`, and `2`
 
_.times(3, function(n) {
  this.cast(n);
}, mage);
// => also invokes `mage.castSpell(n)` three times

_.uniqueId([prefix])
исходный код пакет npm

Генерирует уникальный идентификатор. Если prefix предоставлен, ID добавляется к нему.

Аргументы

  1. [prefix] (строка): Значение для префикса ID.

Возвращает

(строка): Возвращает уникальный ID.

Пример

_.uniqueId('contact_');
// => 'contact_104'
 
_.uniqueId();
// => '105'

Свойства

_.VERSION
исходный код

Семантическое номер версии.

_.support
исходный код

Объект флагов среды выполнения функций.

_.templateSettings
исходный код пакет npm

По умолчанию разделители шаблонов, используемые lodash, аналогичны тем, что в встроенном Ruby (ERB). Измените следующие настройки шаблона, чтобы использовать альтернативные разделители.

_.templateSettings.escape
исходный код

Используется для обнаружения data значений свойств для HTML-эскейпинга.

_.templateSettings.evaluate
исходный код

Используется для обнаружения кода для оценки.

_.templateSettings.imports
исходный код

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

_.templateSettings.imports._
исходный код

Ссылка на функцию lodash.

_.templateSettings.interpolate
исходный код

Используется для обнаружения data значений свойств для вставки.

_.templateSettings.variable
исходный код

Используется для ссылки на объект данных в тексте шаблона.

© 2012–2016 The Dojo Foundation
Licensed under the MIT License.
https://lodash.com/docs/3.10.1

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API