Spec-Zone.ru › lodash 2

lodash

Методы для массивов

_.compact(array)
источник пакет npm

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

Аргументы

  1. array (Массив): Массив для сжатия.

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

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

Пример

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

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

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

Аргументы

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

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

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

Пример

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

_.findIndex(array, [callback=identity], [thisArg])
источник пакет npm

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

Если для callback указано имя свойства, созданный обратный вызов в стиле «.pluck» вернёт значение свойства данного элемента.

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

Аргументы

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

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

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

Пример

var characters = [
  { 'name': 'barney',  'age': 36, 'blocked': false },

  { 'name': 'fred',    'age': 40, 'blocked': true },

  { 'name': 'pebbles', 'age': 1,  'blocked': false }
];
 
_.findIndex(characters, function(chr) {
  return chr.age < 20;
});
// => 2
 
// using "_.where" callback shorthand
_.findIndex(characters, { 'age': 36 });
// => 0
 
// using "_.pluck" callback shorthand
_.findIndex(characters, 'blocked');
// => 1

_.findLastIndex(array, [callback=identity], [thisArg])
source npm package

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

Если в качестве callback указано имя свойства, созданный callback-функции типа ".pluck" возвращает значение свойства данного элемента.

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

Аргументы

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

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

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

Пример

var characters = [
  { 'name': 'barney',  'age': 36, 'blocked': true },

  { 'name': 'fred',    'age': 40, 'blocked': false },

  { 'name': 'pebbles', 'age': 1,  'blocked': true }
];
 
_.findLastIndex(characters, function(chr) {
  return chr.age > 30;
});
// => 1
 
// using "_.where" callback shorthand
_.findLastIndex(characters, { 'age': 36 });
// => 0
 
// using "_.pluck" callback shorthand
_.findLastIndex(characters, 'blocked');
// => 2

_.first(array, [callback], [thisArg])
source npm package

Получает первый элемент или первые n элементов массива. Если указана callback-функция, элементы в начале массива возвращаются до тех пор, пока callback возвращает истинное значение. Callback-функция связана с thisArg и вызывается с тремя аргументами: (значение, индекс, массив).

Если в качестве callback указано имя свойства, созданный callback-функции типа ".pluck" возвращает значение свойства данного элемента.

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

Псевдонимы

_.head, _.take

Аргументы

  1. array (Массив): Массив для обработки.
  2. [callback] (Функция|Объект|число|строка): Функция, вызываемая для каждого элемента, или количество элементов для возврата. Если указано имя свойства или объект, они будут использованы для создания callback-функции типа ".pluck" или ".where" соответственно.
  3. [thisArg] (*): Связывание контекста this с callback.

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

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

Пример

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

var characters = [
  { 'name': 'barney',  'blocked': true,  'employer': 'slate' },

  { 'name': 'fred',    'blocked': false, 'employer': 'slate' },

  { 'name': 'pebbles', 'blocked': true,  'employer': 'na' }
];
 
// using "_.pluck" callback shorthand
_.first(characters, 'blocked');
// => [{ 'name': 'barney', 'blocked': true, 'employer': 'slate' }]
 
// using "_.where" callback shorthand
_.pluck(_.first(characters, { 'employer': 'slate' }), 'name');
// => ['barney', 'fred']

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

Развертывает вложенный массив (вложенность может быть любой глубины). Если isShallow имеет истинное значение, массив будет развернут только на один уровень. Если предоставлен коллбек, каждый элемент массива передается через коллбек перед развертыванием. Коллбек привязан к thisArg и вызывается с тремя аргументами; (значение, индекс, массив).

Если для callback предоставлено имя свойства, созданный коллбек в стиле ".pluck" вернёт значение свойства данного элемента.

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

Аргументы

  1. array (Массив): Массив для развертывания.
  2. [isShallow=false] (логическое значение): Флаг для ограничения развертывания одним уровнем.
  3. [callback=identity] (Функция|Объект|строка): Функция, вызываемая на каждой итерации. Если предоставлено имя свойства или объект, они будут использованы для создания коллбека в стиле ".pluck" или ".where", соответственно.
  4. [thisArg] (*): Связывание this для callback.

Возвращает

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

Пример

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

var characters = [
  { 'name': 'barney', 'age': 30, 'pets': ['hoppy'] },

  { 'name': 'fred',   'age': 40, 'pets': ['baby puss', 'dino'] }
];
 
// using "_.pluck" callback shorthand
_.flatten(characters, 'pets');
// => ['hoppy', 'baby puss', 'dino']

_.indexOf(array, value, [fromIndex=0])
исходный код пакет npm

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

Аргументы

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

Возвращает

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

Пример

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

_.initial(array, [callback=1], [thisArg])
source npm package

Возвращает все элементы массива, кроме последнего или последних n элементов. Если передан колбэк-функция, элементы в конце массива исключаются из результата, до тех пор, пока колбэк возвращает истинное значение. Колбэк привязан к thisArg и вызывается с тремя аргументами; (значение, индекс, массив).

Если в качестве аргумента передан имя свойства callback, созданный колбэк-функция типа «.pluck» возвращает значение свойства заданного элемента.

Если в качестве аргумента передан объект callback, созданный колбэк-функция типа «
.where» вернёт true для элементов, имеющих свойства заданного объекта, иначе false.

Аргументы

  1. array (Массив): Массив для обработки.
  2. [callback=1] (Функция|Объект|число|строка): Функция, вызываемая для каждого элемента, или количество элементов для исключения. Если переданное имя свойства или объект, он будет использован для создания колбэка типа «.pluck» или «.where» соответственно.
  3. [thisArg] (*): Связывание this контекста вызова callback.

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

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

Пример

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

var characters = [
  { 'name': 'barney',  'blocked': false, 'employer': 'slate' },

  { 'name': 'fred',    'blocked': true,  'employer': 'slate' },

  { 'name': 'pebbles', 'blocked': true,  'employer': 'na' }
];
 
// using "_.pluck" callback shorthand
_.initial(characters, 'blocked');
// => [{ 'name': 'barney',  'blocked': false, 'employer': 'slate' }]
 
// using "_.where" callback shorthand
_.pluck(_.initial(characters, { 'employer': 'na' }), 'name');
// => ['barney', 'fred']

_.intersection([array])
source npm package

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

Аргументы

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

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

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

Пример

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

_.last(array, [callback], [thisArg])
source npm package

Получает последний элемент или последние n элементы массива. Если задана функция обратного вызова, возвращаются элементы в конце массива, пока функция обратного вызова возвращает значение, отличное от false. Функция обратного вызова привязана к thisArg и вызывается с тремя аргументами; (значение, индекс, массив).

Если для callback указано имя свойства, созданный обратный вызов типа ".pluck" вернёт значение свойства данного элемента.

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

Аргументы

  1. array (Массив): Массив для запроса.
  2. [callback] (Функция|Объект|число|строка): Функция, вызываемая для каждого элемента, или количество возвращаемых элементов. Если указано имя свойства или объект, они будут использованы для создания обратного вызова типа ".pluck" или ".where" соответственно.
  3. [thisArg] (*): Связывание this с callback.

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

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

Пример

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

var characters = [
  { 'name': 'barney',  'blocked': false, 'employer': 'slate' },

  { 'name': 'fred',    'blocked': true,  'employer': 'slate' },

  { 'name': 'pebbles', 'blocked': true,  'employer': 'na' }
];
 
// using "_.pluck" callback shorthand
_.pluck(_.last(characters, 'blocked'), 'name');
// => ['fred', 'pebbles']
 
// using "_.where" callback shorthand
_.last(characters, { 'employer': 'na' });
// => [{ 'name': 'pebbles', 'blocked': true, 'employer': 'na' }]

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

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

Если для callback задано имя свойства, созданный обратный вызов типа ".pluck" вернёт значение свойства данного элемента.

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

Аргументы

  1. array (Массив): Массив для поиска.
  2. value (*): Значение для поиска.
  3. [fromIndex=array.length-1] (число): Индекс для поиска.

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

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

Пример

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

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

Удаляет все предоставленные значения из заданного массива, используя строгое равенство для сравнения, т. е. ===.

Аргументы

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

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

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

Пример

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

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

_.range([start=0], end, [step=1])
source npm package

Создаёт массив чисел (положительных и/или отрицательных), начиная с start и до, но не включая end. Если start меньше stop, создаётся массив нулевой длины, если не указан отрицательный 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);
// => []

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

Удаляет все элементы из массива, для которых вызов callback возвращает значение true, и возвращает массив удалённых элементов. Callback привязан к thisArg и вызывается с тремя аргументами; (значение, индекс, массив).

Если для callback указано имя свойства, созданный callback в стиле «.pluck» вернёт значение свойства данного элемента.

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

Аргументы

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

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

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

Пример

var array = [1, 2, 3, 4, 5, 6];

var evens = _.remove(array, function(num) { return num % 2 == 0; });
 

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

console.log(evens);
// => [2, 4, 6]

_.rest(array, [callback=1], [thisArg])
source npm package

Обратное методу _.initial, этот метод извлекает все элементы массива, кроме первого или первых n элементов. Если предоставлена функция обратного вызова, элементы в начале массива исключаются из результата, пока обратный вызов возвращает истинное значение. Обратный вызов привязан к thisArg и вызывается с тремя аргументами; (значение, индекс, массив).

Если для callback предоставлено имя свойства, созданный обратный вызов типа ".pluck" вернёт значение свойства данного элемента.

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

Псевдонимы

_.drop, _.tail

Аргументы

  1. array (Массив): Массив для обработки.
  2. [callback=1] (Функция|Объект|число|строка): Функция, вызываемая для каждого элемента, или количество элементов для исключения. Если предоставлено имя свойства или объект, они будут использованы для создания обратного вызова типа ".pluck" или ".where", соответственно.
  3. [thisArg] (*): Привязка this к callback.

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

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

Пример

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

var characters = [
  { 'name': 'barney',  'blocked': true,  'employer': 'slate' },

  { 'name': 'fred',    'blocked': false,  'employer': 'slate' },

  { 'name': 'pebbles', 'blocked': true, 'employer': 'na' }
];
 
// using "_.pluck" callback shorthand
_.pluck(_.rest(characters, 'blocked'), 'name');
// => ['fred', 'pebbles']
 
// using "_.where" callback shorthand
_.rest(characters, { 'employer': 'slate' });
// => [{ 'name': 'pebbles', 'blocked': true, 'employer': 'na' }]

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

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

Если для callback предоставлено имя свойства, созданный обратный вызов типа ".pluck" вернёт значение свойства данного элемента.

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

Аргументы

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

Возвращает

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

Пример

_.sortedIndex([20, 30, 50], 40);
// => 2
 
// using "_.pluck" callback shorthand
_.sortedIndex([{ 'x': 20 }, { 'x': 30 }, { 'x': 50 }], { 'x': 40 }, 'x');
// => 2
 

var dict = {
  'wordToNumber': { 'twenty': 20, 'thirty': 30, 'fourty': 40, 'fifty': 50 }
};
 
_.sortedIndex(['twenty', 'thirty', 'fifty'], 'fourty', function(word) {
  return dict.wordToNumber[word];
});
// => 2
 
_.sortedIndex(['twenty', 'thirty', 'fifty'], 'fourty', function(word) {
  return this.wordToNumber[word];
}, dict);
// => 2

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

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

Аргументы

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

Возвращает

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

Пример

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

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

Создаёт версию массива без дублирующихся значений, используя строгое равенство для сравнения, т. е. ===. Если массив отсортирован, предоставление true для isSorted будет использовать более быстрый алгоритм. Если предоставлен обратный вызов, каждый элемент array передаётся через обратный вызов перед вычислением уникальности. Обратный вызов связан с thisArg и вызывается с тремя аргументами; (значение, индекс, массив).

Если для callback указано имя свойства, созданный обратный вызов типа ".pluck" вернёт значение свойства данного элемента.

Если для callback указан объект, созданный обратный вызов типа "
.where" вернёт true для элементов, которые имеют свойства указанного объекта, иначе false.

Псевдонимы

_.unique

Аргументы

  1. array (Массив): Обрабатываемый массив.
  2. [isSorted=false] (логическое значение): Флаг, указывающий, что array отсортирован.
  3. [callback=identity] (Функция|Объект|строка): Функция, вызываемая на каждой итерации. Если задано имя свойства или объект, оно будет использовано для создания обратного вызова в стиле ".pluck" или ".where", соответственно.
  4. [thisArg] (*): Связывание this для callback.

Результат

(Массив): Возвращает массив без дублирующихся значений.

Пример

_.uniq([1, 2, 1, 3, 1]);
// => [1, 2, 3]
 
_.uniq([1, 1, 2, 2, 3], true);
// => [1, 2, 3]
 
_.uniq(['A', 'b', 'C', 'a', 'B', 'c'], function(letter) { return letter.toLowerCase(); });
// => ['A', 'b', 'C']
 
_.uniq([1, 2.5, 3, 1.5, 2, 3.5], function(num) { return this.floor(num); }, Math);
// => [1, 2.5, 3]
 
// using "_.pluck" callback shorthand
_.uniq([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');
// => [{ 'x': 1 }, { 'x': 2 }]

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

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

Аргументы

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

Результат

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

Пример

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

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

Создаёт массив, который является симметричной разностью заданных массивов. См. http://en.wikipedia.org/wiki/Symmetric_difference.

Аргументы

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

Результат

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

Пример

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

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

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

Псевдонимы

_.unzip

Аргументы

  1. [array] (...Массив): Обрабатываемые массивы.

Результат

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

Пример

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

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

Создаёт объект, составленный из массивов keys и values. Предоставьте либо один двумерный массив, например, [[key1, value1], [key2, value2]] , либо два массива: один с keys и один с соответствующими values.

Псевдонимы

_.object

Аргументы

  1. keys (Массив): Массив ключей.
  2. [values=[]] (Массив): Массив значений.

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

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

Пример

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

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

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

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

Помимо методов Lo-Dash, обертки также имеют следующие Array методы:
concat, join, pop, push, reverse, shift, slice, sort, splice, и unshift

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

Функции обертки, поддерживающие цепочку вызовов:
after, assign, bind, bindAll, bindKey, chain, compact, compose, concat, countBy, create, createCallback, curry, debounce, defaults, defer, delay, difference, filter, flatten, forEach, forEachRight, forIn, forInRight, forOwn, forOwnRight, functions, groupBy, indexBy, initial, intersection, invert, invoke, keys, map, max, memoize, merge, min, object, omit, once, pairs, partial, partialRight, pick, pluck, pull, push, range, reject, remove, rest, reverse, shuffle, slice, sort, sortBy, splice, tap, throttle, times, toArray, transform, union, uniq, unshift, unzip, values, where, without, wrap, и zip

Функции обертки, не поддерживающие цепочку вызовов:

clone, cloneDeep, contains, escape, every, find, findIndex, findKey, findLast, findLastIndex, findLastKey, has, identity, indexOf, isArguments, isArray, isBoolean, isDate, isElement, isEmpty, isEqual, isFinite, isFunction, isNaN, isNull, isNumber, isObject, isPlainObject, isRegExp, isString, isUndefined, join, lastIndexOf, mixin, noConflict, parseInt, pop, random, reduce, reduceRight, result, shift, size, some, sortedIndex, runInContext, template, unescape, uniqueId, и value

Функции-обертки first и last возвращают обернутые значения, когда предоставляется n, в противном случае они возвращают необработанные значения.

Явное цепное вызов можно включить, используя метод _.chain.

Аргументы

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

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

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

Пример

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

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

_.chain(value)
source npm package

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

Аргументы

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

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

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

Пример

var characters = [
  { 'name': 'barney',  'age': 36 },

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

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

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

_.tap(value, interceptor)
source npm package

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

Аргументы

  1. value (*): Значение, которое необходимо предоставить interceptor.
  2. interceptor (Функция): Функция, которую нужно вызвать.

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

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

Пример

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

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

Включает явное объединение методов в объекте обёртки.

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

(*): Возвращает объект обёртки.

Пример

var characters = [
  { 'name': 'barney', 'age': 36 },

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

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

_(characters).chain()
  .first()
  .pick('age')
  .value();
// => { 'age': 36 }

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

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

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

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

Пример

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

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

Извлекает обёрнутое значение.

Псевдонимы

_.prototype.value

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

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

Пример

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

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

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

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

Аргументы

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

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

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

Пример

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

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

Проверяет, присутствует ли заданное значение в коллекции, используя строгое равенство для сравнений, т. е. ===. Если fromIndex отрицательно, оно используется как смещение от конца коллекции.

Псевдонимы

_.include

Аргументы

  1. collection (Array|Object|string): Коллекция для итерации.
  2. target (*): Значение, которое нужно проверить.
  3. [fromIndex=0] (number): Индекс, с которого нужно начать поиск.

Возвращает

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

Пример

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

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

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

Если для callback указано имя свойства, созданный callback в стиле «.pluck» вернёт значение свойства данного элемента.

Если для callback указан объект, созданный callback в стиле «
.where» вернёт true для элементов, имеющих свойства указанного объекта, иначе false.

Аргументы

  1. collection (Array|Object|string): Коллекция для итерации.
  2. [callback=identity] (Function|Object|string): Функция, вызываемая на каждой итерации. Если указано имя свойства или объект, он будет использован для создания callback в стиле «.pluck» или «.where», соответственно.
  3. [thisArg] (*): Связывание this для callback.

Возвращает

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

Пример

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

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

Проверяет, возвращает ли переданный обратный вызов истинное значение для всех элементов коллекции. Обратный вызов привязан к thisArg и вызывается с тремя аргументами; (значение, индекс/ключ, коллекция).

Если для callback указано имя свойства, созданный обратный вызов типа ".pluck" вернёт значение свойства данного элемента.

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

Псевдонимы

_.all

Аргументы

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

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

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

Пример

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

var characters = [
  { 'name': 'barney', 'age': 36 },

  { 'name': 'fred',   'age': 40 }
];
 
// using "_.pluck" callback shorthand
_.every(characters, 'age');
// => true
 
// using "_.where" callback shorthand
_.every(characters, { 'age': 36 });
// => false

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

Итерирует по элементам коллекции, возвращая массив всех элементов, для которых обратный вызов возвращает истинное значение. Обратный вызов привязан к thisArg и вызывается с тремя аргументами; (значение, индекс/ключ, коллекция).

Если для callback указано имя свойства, созданный обратный вызов типа ".pluck" вернёт значение свойства данного элемента.

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

Псевдонимы

_.select

Аргументы

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

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

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

Пример

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

var characters = [
  { 'name': 'barney', 'age': 36, 'blocked': false },

  { 'name': 'fred',   'age': 40, 'blocked': true }
];
 
// using "_.pluck" callback shorthand
_.filter(characters, 'blocked');
// => [{ 'name': 'fred', 'age': 40, 'blocked': true }]
 
// using "_.where" callback shorthand
_.filter(characters, { 'age': 36 });
// => [{ 'name': 'barney', 'age': 36, 'blocked': false }]

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

Перебирает элементы коллекции, возвращая первый элемент, для которого вызываемый метод возвращает значение, отличное от ложного. Вызываемый метод привязан к thisArg и вызывается с тремя аргументами; (значение, индекс/ключ, коллекция).

Если в качестве аргумента callback указано имя свойства, созданный вызываемый метод в стиле «.pluck» вернёт значение свойства данного элемента.

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

Псевдонимы

_.detect, _.findWhere

Аргументы

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

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

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

Пример

var characters = [
  { 'name': 'barney',  'age': 36, 'blocked': false },

  { 'name': 'fred',    'age': 40, 'blocked': true },

  { 'name': 'pebbles', 'age': 1,  'blocked': false }
];
 
_.find(characters, function(chr) {
  return chr.age < 40;
});
// => { 'name': 'barney', 'age': 36, 'blocked': false }
 
// using "_.where" callback shorthand
_.find(characters, { 'age': 1 });
// =>  { 'name': 'pebbles', 'age': 1, 'blocked': false }
 
// using "_.pluck" callback shorthand
_.find(characters, 'blocked');
// => { 'name': 'fred', 'age': 40, 'blocked': true }

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

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

Аргументы

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

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

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

Пример

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

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

Перебирает элементы коллекции, выполняя обратный вызов для каждого элемента. Обратный вызов связан с thisArg и вызывается с тремя аргументами; (значение, индекс|ключ, коллекция). Обратные вызовы могут преждевременно завершить итерацию, явно вернув false.

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

Псевдонимы

_.each

Аргументы

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

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

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

Пример

_([1, 2, 3]).forEach(function(num) { console.log(num); }).join(',');
// => logs each number and returns '1,2,3'
 
_.forEach({ 'one': 1, 'two': 2, 'three': 3 }, function(num) { console.log(num); });
// => logs each number and returns the object (property order is not guaranteed across environments)

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

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

Псевдонимы

_.eachRight

Аргументы

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

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

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

Пример

_([1, 2, 3]).forEachRight(function(num) { console.log(num); }).join(',');
// => logs each number from right to left and returns '3,2,1'

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

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

Если для callback указано имя свойства, созданный обратный вызов типа «.pluck» вернёт значение свойства данного элемента.

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

Аргументы

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

Возвращает

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

Пример

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

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

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

Если для callback указано имя свойства, созданный обратный вызов типа «.pluck» вернёт значение свойства данного элемента.

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

Аргументы

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

Возвращает

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

Пример

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

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

_.invoke(collection, methodName, [arg])
source npm package

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

Аргументы

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

Возвращает

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

Пример

_.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, [callback=identity], [thisArg])
source npm package

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

Если в качестве callback указано имя свойства, созданный callback-стиля ".pluck" вернёт значение свойства данного элемента.

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

Псевдонимы

_.collect

Аргументы

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

Возвращает

(Массив): Возвращает новый массив результатов каждого выполнения callback.

Пример

_.map([1, 2, 3], function(num) { return num * 3; });
// => [3, 6, 9]
 
_.map({ 'one': 1, 'two': 2, 'three': 3 }, function(num) { return num * 3; });
// => [3, 6, 9] (property order is not guaranteed across environments)
 

var characters = [
  { 'name': 'barney', 'age': 36 },

  { 'name': 'fred',   'age': 40 }
];
 
// using "_.pluck" callback shorthand
_.map(characters, 'name');
// => ['barney', 'fred']

_.max(collection, [callback=identity], [thisArg])
source npm package

Извлекает максимальное значение из коллекции. Если коллекция пуста или ложна -Infinity возвращается. Если указана функция обратного вызова, она будет вызвана для каждого значения в коллекции, чтобы сгенерировать критерий ранжирования значения. Функция обратного вызова привязана к thisArg и вызывается с тремя аргументами; (значение, индекс, коллекция).

Если для callback указано имя свойства, созданный обратный вызов типа ".pluck" вернёт значение свойства данного элемента.

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

Аргументы

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

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

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

Пример

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

var characters = [
  { 'name': 'barney', 'age': 36 },

  { 'name': 'fred',   'age': 40 }
];
 
_.max(characters, function(chr) { return chr.age; });
// => { 'name': 'fred', 'age': 40 };
 
// using "_.pluck" callback shorthand
_.max(characters, 'age');
// => { 'name': 'fred', 'age': 40 };

_.min(collection, [callback=identity], [thisArg])
source npm package

Извлекает минимальное значение из коллекции. Если коллекция пуста или ложна Infinity возвращается. Если указана функция обратного вызова, она будет вызвана для каждого значения в коллекции, чтобы сгенерировать критерий ранжирования значения. Функция обратного вызова привязана к thisArg и вызывается с тремя аргументами; (значение, индекс, коллекция).

Если для callback указано имя свойства, созданный обратный вызов типа ".pluck" вернёт значение свойства данного элемента.

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

Аргументы

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

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

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

Пример

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

var characters = [
  { 'name': 'barney', 'age': 36 },

  { 'name': 'fred',   'age': 40 }
];
 
_.min(characters, function(chr) { return chr.age; });
// => { 'name': 'barney', 'age': 36 };
 
// using "_.pluck" callback shorthand
_.min(characters, 'age');
// => { 'name': 'barney', 'age': 36 };

_.pluck(collection, property)
source npm package

Извлекает значение указанного свойства из всех элементов в коллекции.

Аргументы

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

Возвращает

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

Пример

var characters = [
  { 'name': 'barney', 'age': 36 },

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

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

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

Псевдонимы

_.foldl, _.inject

Аргументы

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

Возвращает

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

Пример

var sum = _.reduce([1, 2, 3], function(sum, num) {
  return sum + num;
});
// => 6
 

var mapped = _.reduce({ 'a': 1, 'b': 2, 'c': 3 }, function(result, num, key) {
  result[key] = num * 3;
  return result;
}, {});
// => { 'a': 3, 'b': 6, 'c': 9 }

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

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

Псевдонимы

_.foldr

Аргументы

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

Возвращает

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

Пример

var list = [[0, 1], [2, 3], [4, 5]];

var flat = _.reduceRight(list, function(a, b) { return a.concat(b); }, []);
// => [4, 5, 2, 3, 0, 1]

_.reject(collection, [callback=identity], [thisArg])
source npm package

Противное _.filter это метод возвращает элементы коллекции, для которых вызов обратного вызова не возвращает истинное значение.

Если в качестве аргумента указано имя свойства, то созданный callback в стиле ".pluck" вернёт значение свойства данного элемента.

Если в качестве аргумента передан объект, то созданный callback в стиле "
.where" вернёт true для элементов, которые имеют свойства заданного объекта, иначе false.

Аргументы

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

Возвращает

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

Пример

var odds = _.reject([1, 2, 3, 4, 5, 6], function(num) { return num % 2 == 0; });
// => [1, 3, 5]
 

var characters = [
  { 'name': 'barney', 'age': 36, 'blocked': false },

  { 'name': 'fred',   'age': 40, 'blocked': true }
];
 
// using "_.pluck" callback shorthand
_.reject(characters, 'blocked');
// => [{ 'name': 'barney', 'age': 36, 'blocked': false }]
 
// using "_.where" callback shorthand
_.reject(characters, { 'age': 36 });
// => [{ 'name': 'fred', 'age': 40, 'blocked': true }]

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

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

Аргументы

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

Возвращает

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

Пример

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

_.shuffle(collection)
source npm package

Создаёт массив перемешанных значений, используя версию алгоритма Фишера–Йейтса. См. http://en.wikipedia.org/wiki/Fisher-Yates_shuffle.

Аргументы

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

Возвращает

(Массив): Возвращает новую перемешанную коллекцию.

Пример

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

_.size(collection)
source npm package

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

Аргументы

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

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

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

Пример

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

_.some(collection, [callback=identity], [thisArg])
source npm package

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

Если для callback указано имя свойства, созданный коллбэк в стиле ".pluck" вернёт значение свойства данного элемента.

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

Псевдонимы

_.any

Аргументы

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

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

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

Пример

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

var characters = [
  { 'name': 'barney', 'age': 36, 'blocked': false },

  { 'name': 'fred',   'age': 40, 'blocked': true }
];
 
// using "_.pluck" callback shorthand
_.some(characters, 'blocked');
// => true
 
// using "_.where" callback shorthand
_.some(characters, { 'age': 1 });
// => false

_.sortBy(collection, [callback=identity], [thisArg])
source npm package

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

Если для callback указано имя свойства, созданный обратный вызов в стиле «.pluck» вернёт значение свойства данного элемента.

Если для callback предоставлен массив имён свойств, коллекция будет отсортирована по каждому значению свойства.

Если для callback предоставлен объект, созданный обратный вызов в стиле «.where» вернёт true для элементов, которые имеют свойства данного объекта, в противном случае false.

Аргументы

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

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

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

Пример

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

var characters = [
  { 'name': 'barney',  'age': 36 },

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

  { 'name': 'barney',  'age': 26 },

  { 'name': 'fred',    'age': 30 }
];
 
// using "_.pluck" callback shorthand
_.map(_.sortBy(characters, 'age'), _.values);
// => [['barney', 26], ['fred', 30], ['barney', 36], ['fred', 40]]
 
// sorting by multiple properties
_.map(_.sortBy(characters, ['name', 'age']), _.values);
// = > [['barney', 26], ['barney', 36], ['fred', 30], ['fred', 40]]

_.toArray(коллекция)
исходный код пакет npm

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

Аргументы

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

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

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

Пример

(function() { return _.toArray(arguments).slice(1); })(1, 2, 3, 4);
// => [2, 3, 4]

_.where(коллекция, свойства)
исходный код пакет npm

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

Аргументы

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

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

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

Пример

var characters = [
  { 'name': 'barney', 'age': 36, 'pets': ['hoppy'] },

  { 'name': 'fred',   'age': 40, 'pets': ['baby puss', 'dino'] }
];
 
_.where(characters, { 'age': 36 });
// => [{ 'name': 'barney', 'age': 36, 'pets': ['hoppy'] }]
 
_.where(characters, { 'pets': ['dino'] });
// => [{ 'name': 'fred', 'age': 40, 'pets': ['baby puss', 'dino'] }]

Методы «Функции»

_.after(n, func)
source npm package

Создаёт функцию, которая выполняет 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 all saves have completed

_.bind(func, [thisArg], [arg])
source npm package

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

Аргументы

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

Возвращает

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

Пример

var func = function(greeting) {
  return greeting + ' ' + this.name;
};
 
func = _.bind(func, { 'name': 'fred' }, 'hi');

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

_.bindAll(object, [methodName])
source npm package

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

Аргументы

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

Возвращает

(Объект): Возвращает 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 button is clicked

_.bindKey(object, key, [arg])
source npm package

Создаёт функцию, которая при вызове вызывает метод в object[key] и добавляет любые дополнительные bindKey аргументы перед аргументами, предоставленными связанной функции. Этот метод отличается от _.bind тем, что позволяет связанным функциям ссылаться на методы, которые будут переопределены или ещё не существуют. См. http://michaux.ca/articles/lazy-function-definition-pattern.

Аргументы

  1. object (Объект): Объект, к которому принадлежит метод.
  2. key (строка): Ключ метода.
  3. [arg] (...*): Аргументы для частичного применения.

Возвращает

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

Пример

var object = {
  'name': 'fred',

  'greet': function(greeting) {
    return greeting + ' ' + this.name;
  }
};
 

var func = _.bindKey(object, 'greet', 'hi');

func();
// => 'hi fred'
 
object.greet = function(greeting) {
  return greeting + 'ya ' + this.name + '!';
};
 

func();
// => 'hiya fred!'

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

Создаёт функцию, являющуюся композицией предоставленных функций, где каждая функция потребляет возвращаемое значение функции, которая следует за ней. Например, композиция функций f(), g(), и h() даёт f(g(h())). Каждая функция выполняется с this связыванием составленной функции.

Аргументы

  1. [func] (...Функция): Функции для композиции.

Возвращает

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

Пример

var realNameMap = {
  'pebbles': 'penelope'

};
 

var format = function(name) {
  name = realNameMap[name.toLowerCase()] || name;
  return name.charAt(0).toUpperCase() + name.slice(1).toLowerCase();
};
 

var greet = function(formatted) {
  return 'Hiya ' + formatted + '!';
};
 

var welcome = _.compose(greet, format);

welcome('pebbles');
// => 'Hiya Penelope!'

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

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

Аргументы

  1. func (Функция): Функция для кэррирования.
  2. [arity=func.length] (число): Арность func.

Возвращает

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

Пример

var curried = _.curry(function(a, b, c) {
  console.log(a + b + c);
});
 

curried(1)(2)(3);
// => 6
 

curried(1, 2)(3);
// => 6
 

curried(1, 2, 3);
// => 6

_.debounce(func, wait, [options])
source npm package

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

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

Аргументы

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

Возвращает

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

Пример

// avoid costly calculations while the window size is in flux

var lazyLayout = _.debounce(calculateLayout, 150);

jQuery(window).on('resize', lazyLayout);
 
// execute `sendMail` when the click event is fired, debouncing subsequent calls

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

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

var source = new EventSource('/stream');
source.addEventListener('message', _.debounce(batchLog, 250, {
  'maxWait': 1000

}, false);

_.defer(func, [arg])
source npm package

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

Аргументы

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

Возвращает

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

Пример

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

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

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

Аргументы

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

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

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

Пример

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

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

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

Аргументы

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

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

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

Пример

var fibonacci = _.memoize(function(n) {
  return n < 2 ? n : fibonacci(n - 1) + fibonacci(n - 2);
});
 

fibonacci(9)
// => 34
 

var data = {
  'fred': { 'name': 'fred', 'age': 40 },

  'pebbles': { 'name': 'pebbles', 'age': 1 }
};
 
// modifying the result cache

var get = _.memoize(function(name) { return data[name]; }, _.identity);

get('pebbles');
// => { 'name': 'pebbles', 'age': 1 }
 
get.cache.pebbles.name = 'penelope';

get('pebbles');
// => { 'name': 'penelope', 'age': 1 }

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

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

Аргументы

  1. func (Функция): Ограничиваемая функция.

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

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

Пример

var initialize = _.once(createApplication);

initialize();

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

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

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

Аргументы

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

Возвращает

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

Пример

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

var hi = _.partial(greet, 'hi');

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

_.partialRight(func, [arg])
source npm package

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

Аргументы

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

Возвращает

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

Пример

var defaultsDeep = _.partialRight(_.merge, _.defaults);
 

var options = {
  'variable': 'data',

  'imports': { 'jq': $ }
};
 

defaultsDeep(options, _.templateSettings);
 
options.variable
// => 'data'
 
options.imports
// => { '_': _, 'jq': $ }

_.throttle(func, wait, [options])
source npm package

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

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

Аргументы

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

Возвращает

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

Пример

// avoid excessively updating the position while scrolling

var throttled = _.throttle(updatePosition, 100);

jQuery(window).on('scroll', throttled);
 
// execute `renewToken` when the click event is fired, but not more than once every 5 minutes

jQuery('.interactive').on('click', _.throttle(renewToken, 300000, {
  'trailing': false
}));

_.wrap(value, wrapper)
source npm package

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

Аргументы

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

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

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

Пример

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

p('Fred, Wilma, & Pebbles');
// => '<p>Fred, Wilma, &ampamp; Pebbles</p>'

Методы «Объектов»

_.assign(object, [source], [callback], [thisArg])
source npm package

Присваивает собственные перечисляемые свойства объекта(ов) source объекту destination. Последующие источники перезапишут присваивания свойств предыдущих источников. Если предоставлен callback, он будет выполнен для создания присвоенных значений. Callback привязан к thisArg и вызывается с двумя аргументами; (objectValue, sourceValue).

Псевдонимы

_.extend

Аргументы

  1. object (Объект): Объект назначения.
  2. [source] (...Объект): Источниковые объекты.
  3. [callback] (Функция): Функция для настройки присваивания значений.
  4. [thisArg] (*): this связывание callback.

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

(Объект): Возвращает объект назначения.

Пример

_.assign({ 'name': 'fred' }, { 'employer': 'slate' });
// => { 'name': 'fred', 'employer': 'slate' }
 

var defaults = _.partialRight(_.assign, function(a, b) {
  return typeof a == 'undefined' ? b : a;
});
 

var object = { 'name': 'barney' };

defaults(object, { 'name': 'fred', 'employer': 'slate' });
// => { 'name': 'barney', 'employer': 'slate' }

_.clone(value, [isDeep=false], [callback], [thisArg])
source npm package

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

Аргументы

  1. value (*): Значение для клонирования.
  2. [isDeep=false] (boolean): Указать глубокое клонирование.
  3. [callback] (Функция): Функция для настройки клонирования значений.
  4. [thisArg] (*): this связывание callback.

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

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

Пример

var characters = [
  { 'name': 'barney', 'age': 36 },

  { 'name': 'fred',   'age': 40 }
];
 

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

var deep = _.clone(characters, true);
deep[0] === characters[0];
// => false
 
_.mixin({
  'clone': _.partialRight(_.clone, function(value) {
    return _.isElement(value) ? value.cloneNode(false) : undefined;
  })
});
 

var clone = _.clone(document.body);
clone.childNodes.length;
// => 0

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

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

Примечание: Этот метод слабо основан на алгоритме структурированного клонирования. Функции и узлы DOM не клонируются. Перечислимые свойства объектов arguments и объектов, созданных конструкторами, отличными от Object, клонируются в обычные объекты Object. См. http://www.w3.org/TR/html5/infrastructure.html#internal-structured-cloning-algorithm.

Аргументы

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

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

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

Пример

var characters = [
  { 'name': 'barney', 'age': 36 },

  { 'name': 'fred',   'age': 40 }
];
 

var deep = _.cloneDeep(characters);
deep[0] === characters[0];
// => false
 

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

  'node': element
};
 

var clone = _.cloneDeep(view, function(value) {
  return _.isElement(value) ? value.cloneNode(true) : undefined;
});
 
clone.node == view.node;
// => false

_.create(prototype, [properties])
исходный код пакет npm

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

Аргументы

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

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

Аргументы

  1. object (Объект): Объект назначения.
  2. [source] (...Объекты): Источник объектов.

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

(Объект): Возвращает объект назначения.

Пример

var object = { 'name': 'barney' };
_.defaults(object, { 'name': 'fred', 'employer': 'slate' });
// => { 'name': 'barney', 'employer': 'slate' }

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

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

Если в качестве параметра указано имя свойства для callback созданный обратный вызов в стиле ".pluck" возвращает значение свойства данного элемента.

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

Аргументы

  1. object (Объект): Объект для поиска.
  2. [callback=identity] (Функция|Объект|строка): Функция, вызываемая на каждой итерации. Если указано имя свойства или объект, он будет использован для создания обратного вызова в стиле ".pluck" или ".where", соответственно.
  3. [thisArg] (*): this связывание callback.

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

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

Пример

var characters = {
  'barney': {  'age': 36, 'blocked': false },

  'fred': {    'age': 40, 'blocked': true },

  'pebbles': { 'age': 1,  'blocked': false }
};
 
_.findKey(characters, function(chr) {
  return chr.age < 40;
});
// => 'barney' (property order is not guaranteed across environments)
 
// using "_.where" callback shorthand
_.findKey(characters, { 'age': 1 });
// => 'pebbles'
 
// using "_.pluck" callback shorthand
_.findKey(characters, 'blocked');
// => 'fred'

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

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

Если в качестве параметра указано имя свойства для callback созданный обратный вызов в стиле ".pluck" возвращает значение свойства данного элемента.

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

Аргументы

  1. object (Объект): Объект для поиска.
  2. [callback=identity] (Функция|Объект|строка): Функция, вызываемая на каждой итерации. Если указано имя свойства или объект, будет создана функция обратного вызова в стиле ".pluck" или ".where", соответственно.
  3. [thisArg] (*): Связывание callback.

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

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

Пример

var characters = {
  'barney': {  'age': 36, 'blocked': true },

  'fred': {    'age': 40, 'blocked': false },

  'pebbles': { 'age': 1,  'blocked': true }
};
 
_.findLastKey(characters, function(chr) {
  return chr.age < 40;
});
// => returns `pebbles`, assuming `_.findKey` returns `barney`
 
// using "_.where" callback shorthand
_.findLastKey(characters, { 'age': 40 });
// => 'fred'
 
// using "_.pluck" callback shorthand
_.findLastKey(characters, 'blocked');
// => 'pebbles'

_.forIn(object, [callback=identity], [thisArg])
источник пакет npm

Итерирует по собственным и унаследованным перечисляемым свойствам объекта, выполняя функцию обратного вызова для каждого свойства. Функция обратного вызова связана с thisArg и вызывается с тремя аргументами; (значение, ключ, объект). Функции обратного вызова могут завершить итерацию досрочно, явно вернув false.

Аргументы

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

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

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

Пример

function Shape() {
  this.x = 0;
  this.y = 0;
}
 
Shape.prototype.move = function(x, y) {
  this.x += x;
  this.y += y;
};
 
_.forIn(new Shape, function(value, key) {
  console.log(key);
});
// => logs 'x', 'y', and 'move' (property order is not guaranteed across environments)

_.forInRight(object, [callback=identity], [thisArg])
источник пакет npm

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

Аргументы

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

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

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

Пример

function Shape() {
  this.x = 0;
  this.y = 0;
}
 
Shape.prototype.move = function(x, y) {
  this.x += x;
  this.y += y;
};
 
_.forInRight(new Shape, function(value, key) {
  console.log(key);
});
// => logs 'move', 'y', and 'x' assuming `_.forIn ` logs 'x', 'y', and 'move'

_.forOwn(object, [callback=identity], [thisArg])
источник пакет npm

Перебирает собственные перечисляемые свойства объекта, выполняя обратный вызов для каждого свойства. Обратный вызов связан с thisArg и вызывается с тремя аргументами; (значение, ключ, объект). Обратные вызовы могут досрочно завершить итерацию, явно возвращая false.

Аргументы

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

Возвращает

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

Пример

_.forOwn({ '0': 'zero', '1': 'one', 'length': 2 }, function(num, key) {
  console.log(key);
});
// => logs '0', '1', and 'length' (property order is not guaranteed across environments)

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

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

Аргументы

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

Возвращает

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

Пример

_.forOwnRight({ '0': 'zero', '1': 'one', 'length': 2 }, function(num, key) {
  console.log(key);
});
// => logs 'length', '1', and '0' assuming `_.forOwn` logs '0', '1', and 'length'

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

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

Псевдонимы

_.methods

Аргументы

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

Возвращает

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

Пример

_.functions(_);
// => ['all', 'any', 'bind', 'bindAll', 'clone', 'compact', 'compose', ...]

_.has(object, key)
исходный код пакет npm

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

Аргументы

  1. object (Объект): Объект для проверки.
  2. key (строка): Имя свойства для проверки.

Возвращает

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

Пример

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

_.invert(object)
source npm package

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

Аргументы

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

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

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

Пример

_.invert({ 'first': 'fred', 'second': 'barney' });
// => { 'fred': 'first', 'barney': 'second' }

_.isArguments(value)
source npm package

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

Аргументы

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

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

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

Пример

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

_.isArray(value)
source npm package

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

Аргументы

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

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

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

Пример

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

_.isBoolean(value)
source npm package

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

Аргументы

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

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

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

Пример

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

_.isDate(value)
source npm package

Проверяет, является ли value датой.

Аргументы

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

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

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

Пример

_.isDate(new Date);
// => true

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

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

Аргументы

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

Возвращает

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

Пример

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

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

Проверяет, является ли value пустым. Массивы, строки или arguments объекты с длиной 0 и объекты без собственных перечисляемых свойств считаются «пустыми».

Аргументы

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

Возвращает

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

Пример

_.isEmpty([1, 2, 3]);
// => false
 
_.isEmpty({});
// => true
 
_.isEmpty('');
// => true

_.isEqual(a, b, [callback], [thisArg])
исходный код пакет npm

Производит глубокое сравнение двух значений, чтобы определить, эквивалентны ли они. Если указан callback, он будет вызываться для сравнения значений. Если callback возвращает undefined сравнения будут выполнены методом вместо него. Callback привязан к thisArg и вызывается с двумя аргументами; (a, b).

Аргументы

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

Возвращает

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

Пример

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

var copy = { 'name': 'fred' };
 
object == copy;
// => false
 
_.isEqual(object, copy);
// => true
 

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

var otherWords = ['hi', 'goodbye'];
 
_.isEqual(words, otherWords, function(a, b) {
  var reGreet = /^(?:hello|hi)$/i,

      aGreet = _.isString(a) && reGreet.test(a),

      bGreet = _.isString(b) && reGreet.test(b);
 
  return (aGreet || bGreet) ? (aGreet == bGreet) : undefined;
});
// => true

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

Проверяет, является ли value конечным числом или может быть приведено к конечному числу.

Примечание: Это не то же самое, что и встроенная функция isFinite, которая возвращает true для булевых значений и пустых строк. См. http://es5.github.io/#x15.1.2.5.

Аргументы

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

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

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

Пример

_.isFinite(-101);
// => true
 
_.isFinite('10');
// => true
 
_.isFinite(true);
// => false
 
_.isFinite('');
// => false
 
_.isFinite(Infinity);
// => false

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

Проверяет, является ли value функцией.

Аргументы

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

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

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

Пример

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

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

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

Примечание: Это не то же самое, что и встроенная функция isNaN, которая вернёт true для undefined и других значений, не являющихся числовыми. См. http://es5.github.io/#x15.1.2.4.

Аргументы

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

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

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

Пример

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

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

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

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

Аргументы

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

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

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

Пример

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

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

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

Примечание: NaN считается числом. См. http://es5.github.io/#x8.5.

Аргументы

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

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

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

Пример

_.isNumber(8.4 * 5);
// => true

_.isObject(value)
source npm package

Проверяет, является ли 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)
source npm package

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

Аргументы

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

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

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

Пример

function Shape() {
  this.x = 0;
  this.y = 0;
}
 
_.isPlainObject(new Shape);
// => false
 
_.isPlainObject([1, 2, 3]);
// => false
 
_.isPlainObject({ 'x': 0, 'y': 0 });
// => true

_.isRegExp(value)
source npm package

Проверяет, является ли value регулярным выражением.

Аргументы

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

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

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

Пример

_.isRegExp(/fred/);
// => true

_.isString(value)
source npm package

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

Аргументы

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

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

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

Пример

_.isString('fred');
// => true

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

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

Аргументы

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

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

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

Пример

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

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

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

Аргументы

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

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

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

Пример

_.keys({ 'one': 1, 'two': 2, 'three': 3 });
// => ['one', 'two', 'three'] (property order is not guaranteed across environments)

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

Создаёт объект с теми же ключами, что и у object , и значениями, сгенерированными путём применения callback к каждому собственному перечисляемому свойству object. Callback привязывается к thisArg и вызывается с тремя аргументами; (значение, ключ, объект).

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

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

Аргументы

  1. object (Object): Объект для итерирования.
  2. [callback=identity] (Function|Object|string): Функция, вызываемая на каждой итерации. Если указано имя свойства или объект, они будут использованы для создания callback в стиле ".pluck" или ".where", соответственно.
  3. [thisArg] (*): Связывание контекста this для callback.

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

(Array): Возвращает новый объект со значениями результатов каждого выполнения callback.

Пример

_.mapValues({ 'a': 1, 'b': 2, 'c': 3} , function(num) { return num * 3; });
// => { 'a': 3, 'b': 6, 'c': 9 }
 

var characters = {
  'fred': { 'name': 'fred', 'age': 40 },

  'pebbles': { 'name': 'pebbles', 'age': 1 }
};
 
// using "_.pluck" callback shorthand
_.mapValues(characters, 'age');
// => { 'fred': 40, 'pebbles': 1 }

_.merge(object, [source], [callback], [thisArg])
source npm package

Рекурсивно объединяет собственные перечисляемые свойства объекта(ов) источника, которые не приводят к undefined в целевой объект. Последующие источники перезапишут присвоения свойств предыдущих источников. Если указана функция обратного вызова, она будет выполнена для получения объединённых значений целевых и исходных свойств. Если функция обратного вызова возвращает undefined , объединение будет выполнено методом. Функция обратного вызова связана с thisArg и вызывается с двумя аргументами; (objectValue, sourceValue).

Arguments

  1. object (Object): Целевой объект.
  2. [source] (...Object): Объекты-источники.
  3. [callback] (Function): Функция для настройки объединения свойств.
  4. [thisArg] (*): Связывание this с callback.

Returns

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

Example

var names = {
  'characters': [
    { 'name': 'barney' },

    { 'name': 'fred' }
  ]
};
 

var ages = {
  'characters': [
    { 'age': 36 },

    { 'age': 40 }
  ]
};
 
_.merge(names, ages);
// => { 'characters': [{ 'name': 'barney', 'age': 36 }, { 'name': 'fred', 'age': 40 }] }
 

var food = {
  'fruits': ['apple'],

  'vegetables': ['beet']
};
 

var otherFood = {
  'fruits': ['banana'],

  'vegetables': ['carrot']
};
 
_.merge(food, otherFood, function(a, b) {
  return _.isArray(a) ? a.concat(b) : undefined;
});
// => { 'fruits': ['apple', 'banana'], 'vegetables': ['beet', 'carrot] }

_.omit(object, [callback], [thisArg])
source npm package

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

Arguments

  1. object (Object): Исходный объект.
  2. [callback] (...((string|string[])|Function)): Свойства для исключения или функция, вызываемая на каждой итерации.
  3. [thisArg] (*): Связывание this с callback.

Returns

(Object): Возвращает объект без исключённых свойств.

Example

_.omit({ 'name': 'fred', 'age': 40 }, 'age');
// => { 'name': 'fred' }
 
_.omit({ 'name': 'fred', 'age': 40 }, function(value) {
  return typeof value == 'number';
});
// => { 'name': 'fred' }

_.pairs(object)
source npm package

Создаёт двумерный массив пар ключ-значение объекта, т.е. [[key1, value1], [key2, value2]].

Arguments

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

Returns

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

Пример

_.pairs({ 'barney': 36, 'fred': 40 });
// => [['barney', 36], ['fred', 40]] (property order is not guaranteed across environments)

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

Создает поверхностную копию object, содержащую указанные свойства. Имена свойств могут быть указаны как отдельные аргументы или как массивы имён свойств. Если передан обратный вызов, он будет выполнен для каждого свойства object, выбирая свойства, для которых обратный вызов возвращает значение, отличное от false. Обратный вызов привязан к thisArg и вызывается с тремя аргументами; (значение, ключ, объект).

Аргументы

  1. object (Объект): Источник объекта.
  2. [callback] (...((строка|массив строк)|Функция)): Функция, вызываемая на каждой итерации, или имена свойств для выбора, заданные как отдельные имена свойств или массивы имён свойств.
  3. [thisArg] (*): Связывание this привязки к callback.

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

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

Пример

_.pick({ 'name': 'fred', '_userid': 'fred1' }, 'name');
// => { 'name': 'fred' }
 
_.pick({ 'name': 'fred', '_userid': 'fred1' }, function(value, key) {
  return key.charAt(0) != '_';
});
// => { 'name': 'fred' }

_.transform(object, [callback=identity], [accumulator], [thisArg])
source npm package

Альтернатива _.reduce, этот метод преобразует object в новый accumulator объект, который является результатом выполнения каждого из его собственных перечисляемых свойств через обратный вызов, при каждом выполнении обратного вызова потенциально изменяя accumulator объект. Обратный вызов привязан к thisArg и вызывается с четырьмя аргументами; (аккумулятор, значение, ключ, объект). Обратные вызовы могут завершать итерацию раньше, явно возвращая false.

Аргументы

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

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

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

Пример

var squares = _.transform([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], function(result, num) {
  num *= num;
  if (num % 2) {
    return result.push(num) < 3;
  }
});
// => [1, 9, 25]
 

var mapped = _.transform({ 'a': 1, 'b': 2, 'c': 3 }, function(result, num, key) {
  result[key] = num * 3;
});
// => { 'a': 3, 'b': 6, 'c': 9 }

_.values(object)
source npm package

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

Аргументы

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

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

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

Пример

_.values({ 'one': 1, 'two': 2, 'three': 3 });
// => [1, 2, 3] (property order is not guaranteed across environments)

Методы «Утилиты»

_.constant(value)
source npm package

Создаёт функцию, которая возвращает value.

Аргументы

  1. value (*): Значение, которое должно возвращаться новой функцией.

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

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

Пример

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

var getter = _.constant(object);

getter() === object;
// => true

_.createCallback([func=identity], [thisArg], [argCount])
source npm package

Производит обратный вызов, привязанный к необязательному thisArg. Если func является именем свойства, созданный обратный вызов вернёт значение свойства для данного элемента. Если func является объектом, созданный обратный вызов вернёт true для элементов, содержащих эквивалентные свойства объекта, в противном случае он вернёт false.

Аргументы

  1. [func=identity] (*): Значение для преобразования в обратный вызов.
  2. [thisArg] (*): Связывание this созданного обратного вызова.
  3. [argCount] (число): Количество аргументов, которые принимает обратный вызов.

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

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

Пример

var characters = [
  { 'name': 'barney', 'age': 36 },

  { 'name': 'fred',   'age': 40 }
];
 
// wrap to create custom callback shorthands
_.createCallback = _.wrap(_.createCallback, function(func, callback, thisArg) {
  var match = /^(.+?)__([gl]t)(.+)$/.exec(callback);
  return !match ? func(callback, thisArg) : function(object) {
    return match[2] == 'gt' ? object[match[1]] > match[3] : object[match[1]] < match[3];
  };
});
 
_.filter(characters, 'age__gt38');
// => [{ 'name': 'fred', 'age': 40 }]

_.escape(string)
source npm package

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

Аргументы

  1. string (строка): Строка для экранирования.

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

(строка): Возвращает экранированную строку.

Пример

_.escape('Fred, Wilma, & Pebbles');
// => 'Fred, Wilma, &ampamp; Pebbles'

_.identity(value)
source npm package

Этот метод возвращает первый переданный ему аргумент.

Аргументы

  1. value (*): Любое значение.

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

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

Пример

var object = { 'name': 'fred' };
_.identity(object) === object;
// => true

_.mixin([object=lodash], source, [options])
source npm package

Добавляет свойства-функции из объекта source к объекту destination. Если object является функцией, методы также будут добавлены к его прототипу.

Аргументы

  1. [object=lodash] (Функция|Объект): Объект назначения.
  2. source (Объект): Объект функций для добавления.
  3. [options] (Объект): Объект опций.
  4. [options.chain=true] (логическое значение): Указывает, являются ли добавляемые функции цепными.

Пример

function capitalize(string) {
  return string.charAt(0).toUpperCase() + string.slice(1).toLowerCase();
}
 
_.mixin({ 'capitalize': capitalize });
_.capitalize('fred');
// => 'Fred'
 

_('fred').capitalize().value();
// => 'Fred'
 
_.mixin({ 'capitalize': capitalize }, { 'chain': false });

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

_.noConflict()
source npm package

Возвращает переменную '_' к её предыдущему значению и возвращает ссылку на функцию lodash.

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

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

Пример

var lodash = _.noConflict();

_.noop()
source npm package

Функция без действий.

Пример

var object = { 'name': 'fred' };
_.noop(object) === undefined;
// => true

_.now
source npm package

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

Пример

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

_.parseInt(value, [radix])
source npm package

Преобразует заданное значение в целое число по указанному основанию. Если radix равно undefined или 0, используется radix 10, за исключением случаев, когда value является шестнадцатеричным, в этом случае используется radix 16.

Примечание: Этот метод избегает различий в реализациях parseInt ES3 и ES5. См. http://es5.github.io/#E.

Аргументы

  1. value (строка): Значение для разбора.
  2. [radix] (число): Основание, используемое для интерпретации значения для разбора.

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

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

Пример

_.parseInt('08');
// => 8

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

Создаёт функцию в стиле "_.pluck", которая возвращает key значение заданного объекта.

Аргументы

  1. key (строка): Имя свойства для извлечения.

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

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

Пример

var characters = [
  { 'name': 'fred',   'age': 40 },

  { 'name': 'barney', 'age': 36 }
];
 

var getName = _.property('name');
 
_.map(characters, getName);
// => ['barney', 'fred']
 
_.sortBy(characters, getName);
// => [{ 'name': 'barney', 'age': 36 }, { 'name': 'fred',   'age': 40 }]

_.random([min=0], [max=1], [floating=false])
исходный код пакет npm

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

Аргументы

  1. [min=0] (число): Минимальное возможное значение.
  2. [max=1] (число): Максимальное возможное значение.
  3. [floating=false] (логическое значение): Указать возврат числа с плавающей запятой.

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

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

Пример

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

_.result(object, key)
исходный код пакет npm

Разрешает значение свойства key в object. Если key является функцией, она будет вызвана с привязкой this к object, и её результат будет возвращён; в противном случае возвращается значение свойства. Если object ложно, возвращается undefined.

Аргументы

  1. object (Объект): Объект для проверки.
  2. key (строка): Имя свойства для разрешения.

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

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

Пример

var object = {
  'cheese': 'crumpets',

  'stuff': function() {
    return 'nonsense';
  }
};
 
_.result(object, 'cheese');
// => 'crumpets'
 
_.result(object, 'stuff');
// => 'nonsense'

_.runInContext([context=root])
source npm package

Создаёт новую функцию lodash с использованием заданного объекта контекста.

Аргументы

  1. [context=root] (Объект): Объект контекста.

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

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

_.template(text, data, [options], [sourceURL], [variable])
source npm package

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

Примечание: В режиме разработки _.template использует sourceURLs для более удобной отладки. См. http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/#toc-sourceurl

Для получения дополнительной информации о предварительной компиляции шаблонов см.:
https://lodash.com/custom-builds

Для получения дополнительной информации о песочницах расширений Chrome см.:
http://developer.chrome.com/stable/extensions/sandboxingEval.html

Аргументы

  1. text (строка): Текст шаблона.
  2. data (объект): Объект данных, используемый для заполнения текста.
  3. [options] (объект): Объект параметров.
  4. [options.escape] (RegExp): Разделитель для «экранирования».
  5. [options.evaluate] (RegExp): Разделитель для «вычисления».
  6. [options.imports] (объект): Объект для импорта в шаблон в качестве локальных переменных.
  7. [options.interpolate] (RegExp): Разделитель для «интерполяции».
  8. [sourceURL] (строка): sourceURL скомпилированного исходного кода шаблона.
  9. [variable] (строка): Имя переменной объекта данных.

Возвращает

(*): Возвращает скомпилированную функцию, если объект data не передан, в противном случае возвращает интерполированный текст.

Пример

// using the "interpolate" delimiter to create a compiled template

var compiled = _.template('hello <%= name %>');

compiled({ 'name': 'fred' });
// => 'hello fred'
 
// using the "escape" delimiter to escape HTML in data property values
_.template('<b><%- value %></b>', { 'value': '<script>' });
// => '<b>&amplt;script&ampgt;</b>'
 
// using the "evaluate" delimiter to generate HTML

var list = '<% _.forEach(people, function(name) { %><li><%- name %></li><% }); %>';
_.template(list, { 'people': ['fred', 'barney'] });
// => '<li>fred</li><li>barney</li>'
 
// using the ES6 delimiter as an alternative to the default "interpolate" delimiter
_.template('hello ${ name }', { 'name': 'pebbles' });
// => 'hello pebbles'
 
// using the internal `print` function in "evaluate" delimiters
_.template('<% print("hello " + name); %>!', { 'name': 'barney' });
// => 'hello barney!'
 
// using a custom template delimiters
_.templateSettings = {
  'interpolate': /{{([\s\S]+?)}}/g
};
 
_.template('hello {{ name }}!', { 'name': 'mustache' });
// => 'hello mustache!'
 
// using the `imports` option to import jQuery

var list = '<% jq.each(people, function(name) { %><li><%- name %></li><% }); %>';
_.template(list, { 'people': ['fred', 'barney'] }, { 'imports': { 'jq': jQuery } });
// => '<li>fred</li><li>barney</li>'
 
// using the `sourceURL` option to specify a custom sourceURL for the template

var compiled = _.template('hello <%= name %>', null, { '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.name %>!', null, { 'variable': 'data' });
compiled.source;
// => function(data) {
  var __t, __p = '', __e = _.escape;
  __p += 'hi ' + ((__t = ( data.name )) == 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 + '\

  };\

');

_.times(n, callback, [thisArg])
исходный код пакет npm

Выполняет callback n раз, возвращая массив результатов каждого вызова callback. Callback привязан к thisArg и вызывается с одним аргументом; (индекс).

Аргументы

  1. n (число): Количество раз для выполнения callback.
  2. callback (Функция): Функция, вызываемая на каждой итерации.
  3. [thisArg] (*): Привязка this к callback.

Возвращает

(Массив): Возвращает массив результатов каждого вызова callback.

Пример

var diceRolls = _.times(3, _.partial(_.random, 1, 6));
// => [3, 6, 4]
 
_.times(3, function(n) { mage.castSpell(n); });
// => calls `mage.castSpell(n)` three times, passing `n` of `0`, `1`, and `2` respectively
 
_.times(3, function(n) { this.cast(n); }, mage);
// => also calls `mage.castSpell(n)` three times

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

Обратная функция _.escape - этот метод преобразует HTML-сущности &ampamp;, &amplt;, &ampgt;, &ampquot;, и &amp#39; в строке string в соответствующие символы.

Аргументы

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

Возвращает

(строка): Возвращает строку без экранирования.

Пример

_.unescape('Fred, Barney &ampamp; Pebbles');
// => 'Fred, Barney & Pebbles'

_.uniqueId([prefix])
source npm package

Генерирует уникальный идентификатор. Если prefix указан, идентификатор будет добавлен к нему.

Аргументы

  1. [prefix] (строка): Значение для префикса идентификатора.

Возвращает

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

Пример

_.uniqueId('contact_');
// => 'contact_104'
 
_.uniqueId();
// => '105'

Свойства

_.VERSION
source

Семантический номер версии.

_.support
source

Объект, используемый для флагования возможностей сред.

_.support.argsClass
source

Обнаружение, является ли [[Class]] объекта arguments разрешимым (все, кроме Firefox < 4, IE < 9).

_.support.argsObject
source

Обнаружение, являются ли объекты arguments объектами Object (все, кроме Narwhal и Opera < 10.5).

_.support.enumErrorProps
source

Обнаружение, являются ли свойства name или message объекта Error.prototype перечисляемыми по умолчанию. (IE < 9, Safari < 5.1)

_.support.enumPrototypes
source

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

Firefox < 3.6, Opera > 9.50 - Opera < 11.60, и Safari < 5.1 (если прототип или свойство на прототипе было установлено) неправильно устанавливает значение свойства [[Enumerable]] функции в prototype.

_.support.funcDecomp
source

Определить, могут ли функции быть дизассемблированы Function#toString (все, кроме PS3 и старых браузеров Opera Mobile, а также избегается в приложениях Windows 8).

_.support.funcNames
исходный код

Определить, поддерживается ли Function#name (кроме IE).

_.support.nonEnumArgs
исходный код

Определить, являются ли индексы объектов arguments неперечисляемыми (Firefox < 4, IE < 9, PhantomJS, Safari < 5.1).

_.support.nonEnumShadows
исходный код

Определить, являются ли свойства, затеняющие свойства Object.prototype, неперечисляемыми.

В IE < 9 собственные свойства объектов, затеняющие неперечисляемые, также делаются неперечисляемыми (также известная ошибка JScript [[DontEnum]]).

_.support.ownLast
исходный код

Определить, итерируются ли собственные свойства после унаследованных свойств (все, кроме IE < 9).

_.support.spliceObjects
исходный код

Определить, правильно ли Array#shift и Array#splice дополняют похожие на массивы объекты.

Firefox < 10, режим совместимости IE и IE < 9 имеют ошибочные функции массива shift() и splice(), которые не удаляют последний элемент, value[0], массивоподобных объектов, даже если свойство length установлено в 0. Метод shift() ошибочен в режиме совместимости IE 8, а splice() ошибочен независимо от режима в IE < 9 и ошибочен в режиме совместимости в IE 9.

_.support.unindexedChars
исходный код

Определить отсутствие поддержки доступа к символам строки по индексу.

IE < 8 не может получить доступ к символам по индексу, а IE 8 может получить доступ только к символам по индексу в строковых литералах.

_.templateSettings
source npm package

По умолчанию, разделители шаблонов, используемые Lo-Dash, аналогичны тем, что в встроенном Ruby (ERB). Измените следующие параметры шаблона, чтобы использовать альтернативные разделители.

_.templateSettings.escape
source

Используется для обнаружения значений свойств data для HTML-экранирования.

_.templateSettings.evaluate
source

Используется для обнаружения кода для оценки.

_.templateSettings.imports
source

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

_.templateSettings.imports._
source

Ссылка на функцию lodash.

_.templateSettings.interpolate
source

Используется для обнаружения значений свойств data для вставки.

_.templateSettings.variable
source

Используется для ссылки на объект данных в тексте шаблона.

© 2012–2016 The Dojo Foundation
Licensed under the MIT License.
https://lodash.com/docs/2.4.2

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API