lodash
Методы для массивов
_.compact(array)
Создаёт массив, из которого удалены все ложные значения. Значения false, null, 0, "", undefined, и NaN являются ложными.
Аргументы
-
array(Массив): Массив для сжатия.
Возвращаемое значение
(Массив): Возвращает новый массив отфильтрованных значений.
Пример
_.compact([0, 1, false, 2, '', 3]); // => [1, 2, 3]
_.difference(array, [values])
Создаёт массив, исключая все значения из предоставленных массивов, используя строгое равенство для сравнений, т. е. ===.
Аргументы
-
array(Массив): Обрабатываемый массив. -
[values](...Массив): Массивы значений для исключения.
Возвращаемое значение
(Массив): Возвращает новый массив отфильтрованных значений.
Пример
_.difference([1, 2, 3, 4, 5], [5, 2, 10]); // => [1, 3, 4]
_.findIndex(array, [callback=identity], [thisArg])
Этот метод похож на _.find, за исключением того, что он возвращает индекс первого элемента, который проходит проверку обратного вызова, а не сам элемент.
Если для callback указано имя свойства, созданный обратный вызов в стиле «.pluck» вернёт значение свойства данного элемента.
Если для callback предоставлен объект, созданный обратный вызов в стиле «.where» вернёт true для элементов, имеющих свойства указанного объекта, иначе false.
Аргументы
-
array(Массив): Массив для поиска. -
[callback=identity](Функция|Объект|строка): Функция, вызываемая на каждой итерации. Если предоставлено имя свойства или объект, он будет использован для создания обратного вызова в стиле «.pluck» или «.where» соответственно. -
[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])
Этот метод похож на _.findIndex, за исключением того, что он итерирует по элементам массива collection справа налево.
Если в качестве callback указано имя свойства, созданный callback-функции типа ".pluck" возвращает значение свойства данного элемента.
Если в качестве callback указан объект, созданный callback-функции типа ".where" возвращает true для элементов, имеющих свойства указанного объекта, в противном случае false.
Аргументы
-
array(Массив): Массив для поиска. -
[callback=identity](Функция|Объект|строка): Функция, вызываемая на каждой итерации. Если указано имя свойства или объект, они будут использованы для создания callback-функции типа ".pluck" или ".where" соответственно. -
[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])
Получает первый элемент или первые n элементов массива. Если указана callback-функция, элементы в начале массива возвращаются до тех пор, пока callback возвращает истинное значение. Callback-функция связана с thisArg и вызывается с тремя аргументами: (значение, индекс, массив).
Если в качестве callback указано имя свойства, созданный callback-функции типа ".pluck" возвращает значение свойства данного элемента.
Если в качестве callback указан объект, созданный callback-функции типа ".where" возвращает true для элементов, имеющих свойства указанного объекта, в противном случае false.
Псевдонимы
_.head, _.take
Аргументы
-
array(Массив): Массив для обработки. -
[callback](Функция|Объект|число|строка): Функция, вызываемая для каждого элемента, или количество элементов для возврата. Если указано имя свойства или объект, они будут использованы для создания callback-функции типа ".pluck" или ".where" соответственно. -
[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])
Развертывает вложенный массив (вложенность может быть любой глубины). Если isShallow имеет истинное значение, массив будет развернут только на один уровень. Если предоставлен коллбек, каждый элемент массива передается через коллбек перед развертыванием. Коллбек привязан к thisArg и вызывается с тремя аргументами; (значение, индекс, массив).
Если для callback предоставлено имя свойства, созданный коллбек в стиле ".pluck" вернёт значение свойства данного элемента.
Если для callback предоставлен объект, созданный коллбек в стиле ".where" вернёт true для элементов, обладающих свойствами данного объекта, иначе false.
Аргументы
-
array(Массив): Массив для развертывания. -
[isShallow=false](логическое значение): Флаг для ограничения развертывания одним уровнем. -
[callback=identity](Функция|Объект|строка): Функция, вызываемая на каждой итерации. Если предоставлено имя свойства или объект, они будут использованы для создания коллбека в стиле ".pluck" или ".where", соответственно. -
[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])
Получает индекс, в котором находится первое вхождение value, используя строгое равенство для сравнений, т.е. ===. Если массив уже отсортирован, предоставление true для fromIndex позволит выполнить более быстрый бинарный поиск.
Аргументы
-
array(Массив): Массив для поиска. -
value(*): Значение для поиска. -
[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])
Возвращает все элементы массива, кроме последнего или последних n элементов. Если передан колбэк-функция, элементы в конце массива исключаются из результата, до тех пор, пока колбэк возвращает истинное значение. Колбэк привязан к thisArg и вызывается с тремя аргументами; (значение, индекс, массив).
Если в качестве аргумента передан имя свойства callback, созданный колбэк-функция типа «.pluck» возвращает значение свойства заданного элемента.
Если в качестве аргумента передан объект callback, созданный колбэк-функция типа «.where» вернёт true для элементов, имеющих свойства заданного объекта, иначе false.
Аргументы
-
array(Массив): Массив для обработки. -
[callback=1](Функция|Объект|число|строка): Функция, вызываемая для каждого элемента, или количество элементов для исключения. Если переданное имя свойства или объект, он будет использован для создания колбэка типа «.pluck» или «.where» соответственно. -
[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])
Создаёт массив уникальных значений, присутствующих во всех переданных массивах, используя строгое равенство для сравнения, т.е. ===.
Аргументы
-
[array](...Массив): Массивы для проверки.
Возвращаемое значение
(Массив): Возвращает массив общих значений.
Пример
_.intersection([1, 2, 3], [5, 2, 1, 4], [2, 1]); // => [1, 2]
_.last(array, [callback], [thisArg])
Получает последний элемент или последние n элементы массива. Если задана функция обратного вызова, возвращаются элементы в конце массива, пока функция обратного вызова возвращает значение, отличное от false. Функция обратного вызова привязана к thisArg и вызывается с тремя аргументами; (значение, индекс, массив).
Если для callback указано имя свойства, созданный обратный вызов типа ".pluck" вернёт значение свойства данного элемента.
Если для callback передан объект, созданный обратный вызов типа ".where" вернёт true для элементов, обладающих свойствами данного объекта, иначе false.
Аргументы
-
array(Массив): Массив для запроса. -
[callback](Функция|Объект|число|строка): Функция, вызываемая для каждого элемента, или количество возвращаемых элементов. Если указано имя свойства или объект, они будут использованы для создания обратного вызова типа ".pluck" или ".where" соответственно. -
[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])
Возвращает индекс последнего вхождения value, используя строгое равенство для сравнения, т.е. ===. Если fromIndex отрицательное, оно используется как смещение от конца коллекции.
Если для callback задано имя свойства, созданный обратный вызов типа ".pluck" вернёт значение свойства данного элемента.
Если для callback передан объект, созданный обратный вызов типа ".where" вернёт true для элементов, обладающих свойствами данного объекта, иначе false.
Аргументы
-
array(Массив): Массив для поиска. -
value(*): Значение для поиска. -
[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])
Удаляет все предоставленные значения из заданного массива, используя строгое равенство для сравнения, т. е. ===.
Аргументы
-
array(Массив): Массив для изменения. -
[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])
Создаёт массив чисел (положительных и/или отрицательных), начиная с start и до, но не включая end. Если start меньше stop, создаётся массив нулевой длины, если не указан отрицательный step.
Аргументы
-
[start=0](число): Начало диапазона. -
end(число): Конец диапазона. -
[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])
Удаляет все элементы из массива, для которых вызов callback возвращает значение true, и возвращает массив удалённых элементов. Callback привязан к thisArg и вызывается с тремя аргументами; (значение, индекс, массив).
Если для callback указано имя свойства, созданный callback в стиле «.pluck» вернёт значение свойства данного элемента.
Если для callback указан объект, созданный callback в стиле «.where» вернёт true для элементов, обладающих свойствами данного объекта, в противном случае false.
Аргументы
-
array(Массив): Массив для изменения. -
[callback=identity](Функция|Объект|строка): Функция, вызываемая на каждой итерации. Если указано имя свойства или объект, они будут использованы для создания callback в стиле «.pluck» или «.where» соответственно. -
[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])
Обратное методу _.initial, этот метод извлекает все элементы массива, кроме первого или первых n элементов. Если предоставлена функция обратного вызова, элементы в начале массива исключаются из результата, пока обратный вызов возвращает истинное значение. Обратный вызов привязан к thisArg и вызывается с тремя аргументами; (значение, индекс, массив).
Если для callback предоставлено имя свойства, созданный обратный вызов типа ".pluck" вернёт значение свойства данного элемента.
Если для callback предоставлен объект, созданный обратный вызов типа ".where" вернёт true для элементов, обладающих свойствами данного объекта, в противном случае false.
Псевдонимы
_.drop, _.tail
Аргументы
-
array(Массив): Массив для обработки. -
[callback=1](Функция|Объект|число|строка): Функция, вызываемая для каждого элемента, или количество элементов для исключения. Если предоставлено имя свойства или объект, они будут использованы для создания обратного вызова типа ".pluck" или ".where", соответственно. -
[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])
Использует двоичный поиск для определения наименьшего индекса, в который нужно вставить значение в заданный отсортированный массив, чтобы сохранить порядок сортировки массива. Если предоставлен обратный вызов, он будет выполнен для value и каждого элемента array для вычисления их ранжирования в сортировке. Обратный вызов привязан к thisArg и вызывается с одним аргументом; (значение).
Если для callback предоставлено имя свойства, созданный обратный вызов типа ".pluck" вернёт значение свойства данного элемента.
Если для callback предоставлен объект, созданный обратный вызов типа ".where" вернёт true для элементов, обладающих свойствами данного объекта, в противном случае false.
Аргументы
-
array(Массив): Массив для проверки. -
value(*): Значение для оценки. -
[callback=identity](Функция|Объект|строка): Функция, вызываемая на каждой итерации. Если указано имя свойства или объект, он будет использован для создания обратного вызова типа ".pluck" или ".where", соответственно. -
[thisArg](*): Связываниеthiscallback.
Возвращает
(число): Возвращает индекс, в который 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([массив])
Создаёт массив уникальных значений, в порядке следования, из предоставленных массивов, используя строгое равенство для сравнения, т. е. ===.
Аргументы
-
[array](...Массив): Массивы для проверки.
Возвращает
(Массив): Возвращает массив объединённых значений.
Пример
_.union([1, 2, 3], [5, 2, 1, 4], [2, 1]); // => [1, 2, 3, 5, 4]
_.uniq(массив, [isSorted=false], [callback=identity], [thisArg])
Создаёт версию массива без дублирующихся значений, используя строгое равенство для сравнения, т. е. ===. Если массив отсортирован, предоставление true для isSorted будет использовать более быстрый алгоритм. Если предоставлен обратный вызов, каждый элемент array передаётся через обратный вызов перед вычислением уникальности. Обратный вызов связан с thisArg и вызывается с тремя аргументами; (значение, индекс, массив).
Если для callback указано имя свойства, созданный обратный вызов типа ".pluck" вернёт значение свойства данного элемента.
Если для callback указан объект, созданный обратный вызов типа ".where" вернёт true для элементов, которые имеют свойства указанного объекта, иначе false.
Псевдонимы
_.unique
Аргументы
-
array(Массив): Обрабатываемый массив. -
[isSorted=false](логическое значение): Флаг, указывающий, чтоarrayотсортирован. -
[callback=identity](Функция|Объект|строка): Функция, вызываемая на каждой итерации. Если задано имя свойства или объект, оно будет использовано для создания обратного вызова в стиле ".pluck" или ".where", соответственно. -
[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(массив, [значение])
Создаёт массив, исключая все заданные значения с использованием строгого равенства для сравнения, т.е. ===.
Аргументы
-
array(Массив): Массив для фильтрации. -
[value](...*): Значения для исключения.
Результат
(Массив): Возвращает новый массив отфильтрованных значений.
Пример
_.without([1, 2, 1, 0, 3, 1, 4], 0, 1); // => [2, 3, 4]
_.xor([массив])
Создаёт массив, который является симметричной разностью заданных массивов. См. http://en.wikipedia.org/wiki/Symmetric_difference.
Аргументы
-
[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([массив])
Создаёт массив сгруппированных элементов, первый из которых содержит первые элементы заданных массивов, второй — вторые элементы заданных массивов и так далее.
Псевдонимы
_.unzip
Аргументы
-
[array](...Массив): Обрабатываемые массивы.
Результат
(Массив): Возвращает новый массив сгруппированных элементов.
Пример
_.zip(['fred', 'barney'], [30, 40], [true, false]); // => [['fred', 30, true], ['barney', 40, false]]
_.zipObject(ключи, [значения=[]])
Создаёт объект, составленный из массивов keys и values. Предоставьте либо один двумерный массив, например, [[key1, value1], [key2, value2]] , либо два массива: один с keys и один с соответствующими values.
Псевдонимы
_.object
Аргументы
-
keys(Массив): Массив ключей. -
[values=[]](Массив): Массив значений.
Возвращаемое значение
(Объект): Возвращает объект, составленный из заданных ключей и соответствующих значений.
Пример
_.zipObject(['fred', 'barney'], [30, 40]);
// => { 'fred': 30, 'barney': 40 }
Методы «Цепочки»
_(value)
Создаёт объект 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.
Аргументы
-
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)
Создаёт объект lodash, который оборачивает заданное значение с включённой явной цепочкой вызовов методов.
Аргументы
-
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)
Вызывает interceptor с value в качестве первого аргумента, а затем возвращает value. Цель этого метода — «включиться» в цепочку методов, чтобы выполнять операции над промежуточными результатами в цепочке.
Аргументы
-
value(*): Значение, которое необходимо предоставитьinterceptor. -
interceptor(Функция): Функция, которую нужно вызвать.
Возвращаемое значение
(*): Возвращает value.
Пример
_([1, 2, 3, 4])
.tap(function(array) { array.pop(); })
.reverse()
.value();
// => [3, 2, 1]
_.prototype.chain()
Включает явное объединение методов в объекте обёртки.
Возвращаемое значение
(*): Возвращает объект обёртки.
Пример
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()
Создаёт строковое представление обёрнутого значения.
Возвращаемое значение
(строка): Возвращает строковое представление.
Пример
_([1, 2, 3]).toString(); // => '1,2,3'
_.prototype.valueOf()
Извлекает обёрнутое значение.
Псевдонимы
_.prototype.value
Возвращаемое значение
(*): Возвращает обёрнутое значение.
Пример
_([1, 2, 3]).valueOf(); // => [1, 2, 3]
Методы «Коллекций»
_.at(collection, [index])
Создаёт массив элементов из указанных индексов или ключей коллекции. Индексы могут быть указаны как отдельные аргументы или массивы индексов.
Аргументы
-
collection(Массив|Объект|строка): Коллекция, по которой необходимо выполнить итерацию. -
[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])
Проверяет, присутствует ли заданное значение в коллекции, используя строгое равенство для сравнений, т. е. ===. Если fromIndex отрицательно, оно используется как смещение от конца коллекции.
Псевдонимы
_.include
Аргументы
-
collection(Array|Object|string): Коллекция для итерации. -
target(*): Значение, которое нужно проверить. -
[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])
Создаёт объект, состоящий из ключей, сгенерированных из результатов выполнения каждого элемента collection через callback. Соответствующее значение каждого ключа — количество раз, когда ключ возвращался callback. Callback привязан к thisArg и вызывается с тремя аргументами; (value, index|key, collection).
Если для callback указано имя свойства, созданный callback в стиле «.pluck» вернёт значение свойства данного элемента.
Если для callback указан объект, созданный callback в стиле «.where» вернёт true для элементов, имеющих свойства указанного объекта, иначе false.
Аргументы
-
collection(Array|Object|string): Коллекция для итерации. -
[callback=identity](Function|Object|string): Функция, вызываемая на каждой итерации. Если указано имя свойства или объект, он будет использован для создания callback в стиле «.pluck» или «.where», соответственно. -
[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])
Проверяет, возвращает ли переданный обратный вызов истинное значение для всех элементов коллекции. Обратный вызов привязан к thisArg и вызывается с тремя аргументами; (значение, индекс/ключ, коллекция).
Если для callback указано имя свойства, созданный обратный вызов типа ".pluck" вернёт значение свойства данного элемента.
Если для callback указан объект, созданный обратный вызов типа ".where" вернёт true для элементов, имеющих свойства данного объекта, иначе false.
Псевдонимы
_.all
Аргументы
-
collection(Массив|Объект|строка): Коллекция, по которой нужно выполнить итерацию. -
[callback=identity](Функция|Объект|строка): Функция, вызываемая на каждой итерации. Если указано имя свойства или объект, он будет использован для создания обратного вызова типа ".pluck" или ".where" соответственно. -
[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])
Итерирует по элементам коллекции, возвращая массив всех элементов, для которых обратный вызов возвращает истинное значение. Обратный вызов привязан к thisArg и вызывается с тремя аргументами; (значение, индекс/ключ, коллекция).
Если для callback указано имя свойства, созданный обратный вызов типа ".pluck" вернёт значение свойства данного элемента.
Если для callback указан объект, созданный обратный вызов типа ".where" вернёт true для элементов, имеющих свойства данного объекта, иначе false.
Псевдонимы
_.select
Аргументы
-
collection(Массив|Объект|строка): Коллекция, по которой нужно выполнить итерацию. -
[callback=identity](Функция|Объект|строка): Функция, вызываемая на каждой итерации. Если указано имя свойства или объект, он будет использован для создания обратного вызова типа ".pluck" или ".where" соответственно. -
[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])
Перебирает элементы коллекции, возвращая первый элемент, для которого вызываемый метод возвращает значение, отличное от ложного. Вызываемый метод привязан к thisArg и вызывается с тремя аргументами; (значение, индекс/ключ, коллекция).
Если в качестве аргумента callback указано имя свойства, созданный вызываемый метод в стиле «.pluck» вернёт значение свойства данного элемента.
Если в качестве аргумента callback передан объект, созданный вызываемый метод в стиле «.where» вернёт true для элементов, имеющих свойства данного объекта, иначе false.
Псевдонимы
_.detect, _.findWhere
Аргументы
-
collection(Массив|Объект|строка): Коллекция для перебора. -
[callback=identity](Функция|Объект|строка): Функция, вызываемая на каждой итерации. Если указано имя свойства или объект, они будут использованы для создания вызываемого метода в стиле «.pluck» или «.where» соответственно. -
[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])
Этот метод похож на _.find, за исключением того, что он перебирает элементы коллекции collection справа налево.
Аргументы
-
collection(Массив|Объект|строка): Коллекция для перебора. -
[callback=identity](Функция|Объект|строка): Функция, вызываемая на каждой итерации. Если указано имя свойства или объект, они будут использованы для создания вызываемого метода в стиле «.pluck» или «.where» соответственно. -
[thisArg](*): Связываниеthisсcallback.
Возвращаемое значение
(*): Возвращает найденный элемент, иначе undefined.
Пример
_.findLast([1, 2, 3, 4], function(num) {
return num % 2 == 1;
});
// => 3
_.forEach(collection, [callback=identity], [thisArg])
Перебирает элементы коллекции, выполняя обратный вызов для каждого элемента. Обратный вызов связан с thisArg и вызывается с тремя аргументами; (значение, индекс|ключ, коллекция). Обратные вызовы могут преждевременно завершить итерацию, явно вернув false.
Примечание: Как и в других методах «Коллекций», объекты с свойством length итерируются как массивы. Чтобы избежать этого поведения, можно использовать _.forIn или _.forOwn для итерации по объектам.
Псевдонимы
_.each
Аргументы
-
collection(Массив|Объект|строка): Коллекция для перебора. -
[callback=identity](Функция): Функция, вызываемая на каждой итерации. -
[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])
Этот метод похож на _.forEach, за исключением того, что он перебирает элементы collection справа налево.
Псевдонимы
_.eachRight
Аргументы
-
collection(Массив|Объект|строка): Коллекция для перебора. -
[callback=identity](Функция): Функция, вызываемая на каждой итерации. -
[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])
Создаёт объект, составленный из ключей, сгенерированных из результатов выполнения каждого элемента коллекции с помощью обратного вызова. Соответствующее значение каждого ключа — массив элементов, ответственных за генерацию ключа. Обратный вызов привязан к thisArg и вызывается с тремя аргументами; (значение, индекс|ключ, коллекция).
Если для callback указано имя свойства, созданный обратный вызов типа «.pluck» вернёт значение свойства данного элемента.
Если для callback указан объект, созданный обратный вызов типа «.where» вернёт true для элементов, имеющих свойства данного объекта, иначе false
Аргументы
-
collection(Массив|Объект|строка): Коллекция для итерации. -
[callback=identity](Функция|Объект|строка): Функция, вызываемая на каждой итерации. Если предоставлено имя свойства или объект, они будут использованы для создания обратного вызова типа «.pluck» или «.where» соответственно. -
[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])
Создаёт объект, составленный из ключей, сгенерированных из результатов выполнения каждого элемента коллекции с помощью заданного обратного вызова. Соответствующее значение каждого ключа — последний элемент, ответственный за генерацию ключа. Обратный вызов привязан к thisArg и вызывается с тремя аргументами: (значение, индекс|ключ, коллекция).
Если для callback указано имя свойства, созданный обратный вызов типа «.pluck» вернёт значение свойства данного элемента.
Если для callback указан объект, созданный обратный вызов типа «.where» вернёт true для элементов, имеющих свойства данного объекта, иначе false.
Аргументы
-
collection(Массив|Объект|строка): Коллекция для итерации. -
[callback=identity](Функция|Объект|строка): Функция, вызываемая на каждой итерации. Если предоставлено имя свойства или объект, они будут использованы для создания обратного вызова типа «.pluck» или «.where» соответственно. -
[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])
Вызывает метод, указанный в methodName, для каждого элемента в collection, возвращая массив результатов каждого вызова метода. Дополнительные аргументы будут переданы каждому вызванному методу. Если methodName является функцией, она будет вызвана для каждого элемента в collection, и this будет связана с каждым элементом.
Аргументы
-
collection(Массив|Объект|строка): Коллекция для итерации. -
methodName(Функция|строка): Имя метода для вызова или функция, вызываемая на каждой итерации. -
[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])
Создаёт массив значений, выполняя для каждого элемента в коллекции переданную функцию обратного вызова. Функция обратного вызова связана с thisArg и вызывается с тремя аргументами: (значение, индекс|ключ, коллекция).
Если в качестве callback указано имя свойства, созданный callback-стиля ".pluck" вернёт значение свойства данного элемента.
Если в качестве callback указан объект, созданный callback-стиля ".where" вернёт true для элементов, имеющих свойства заданного объекта, иначе false.
Псевдонимы
_.collect
Аргументы
-
collection(Массив|Объект|строка): Коллекция для итерации. -
[callback=identity](Функция|Объект|строка): Функция, вызываемая на каждой итерации. Если указано имя свойства или объект, он будет использован для создания callback-функции типа ".pluck" или ".where" соответственно. -
[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])
Извлекает максимальное значение из коллекции. Если коллекция пуста или ложна -Infinity возвращается. Если указана функция обратного вызова, она будет вызвана для каждого значения в коллекции, чтобы сгенерировать критерий ранжирования значения. Функция обратного вызова привязана к thisArg и вызывается с тремя аргументами; (значение, индекс, коллекция).
Если для callback указано имя свойства, созданный обратный вызов типа ".pluck" вернёт значение свойства данного элемента.
Если для callback передан объект, созданный обратный вызов типа ".where" вернёт true для элементов, имеющих свойства указанного объекта, в противном случае false.
Аргументы
-
collection(Массив|Объект|строка): Коллекция для итерации. -
[callback=identity](Функция|Объект|строка): Функция, вызываемая на каждой итерации. Если указано имя свойства или объект, они будут использованы для создания обратного вызова типа ".pluck" или ".where" соответственно. -
[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])
Извлекает минимальное значение из коллекции. Если коллекция пуста или ложна Infinity возвращается. Если указана функция обратного вызова, она будет вызвана для каждого значения в коллекции, чтобы сгенерировать критерий ранжирования значения. Функция обратного вызова привязана к thisArg и вызывается с тремя аргументами; (значение, индекс, коллекция).
Если для callback указано имя свойства, созданный обратный вызов типа ".pluck" вернёт значение свойства данного элемента.
Если для callback передан объект, созданный обратный вызов типа ".where" вернёт true для элементов, имеющих свойства указанного объекта, в противном случае false.
Аргументы
-
collection(Массив|Объект|строка): Коллекция для итерации. -
[callback=identity](Функция|Объект|строка): Функция, вызываемая на каждой итерации. Если указано имя свойства или объект, они будут использованы для создания обратного вызова типа ".pluck" или ".where" соответственно. -
[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)
Извлекает значение указанного свойства из всех элементов в коллекции.
Аргументы
-
collection(Массив|Объект|строка): Коллекция для итерации. -
property(строка): Имя свойства для извлечения.
Возвращает
(Массив): Возвращает новый массив значений свойств.
Пример
var characters = [
{ 'name': 'barney', 'age': 36 },
{ 'name': 'fred', 'age': 40 }
];
_.pluck(characters, 'name');
// => ['barney', 'fred']
_.reduce(collection, [callback=identity], [accumulator], [thisArg])
Сводит коллекцию к значению, которое является накопленным результатом выполнения каждого элемента в коллекции через обратный вызов, где каждое последующее выполнение обратного вызова потребляет возвращаемое значение предыдущего выполнения. Если accumulator не указан, первый элемент коллекции будет использоваться в качестве начального значения accumulator. Обратный вызов привязан к thisArg и вызывается с четырьмя аргументами; (аккумулятор, значение, индекс|ключ, коллекция).
Псевдонимы
_.foldl, _.inject
Аргументы
-
collection(Массив|Объект|строка): Коллекция для итерации. -
[callback=identity](Функция): Функция, вызываемая на каждой итерации. -
[accumulator](*): Начальное значение аккумулятора. -
[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])
Этот метод похож на _.reduce, за исключением того, что он итерирует элементы коллекции справа налево.
Псевдонимы
_.foldr
Аргументы
-
collection(Массив|Объект|строка): Коллекция для итерации. -
[callback=identity](Функция): Функция, вызываемая на каждой итерации. -
[accumulator](*): Начальное значение аккумулятора. -
[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])
Противное _.filter это метод возвращает элементы коллекции, для которых вызов обратного вызова не возвращает истинное значение.
Если в качестве аргумента указано имя свойства, то созданный callback в стиле ".pluck" вернёт значение свойства данного элемента.
Если в качестве аргумента передан объект, то созданный callback в стиле ".where" вернёт true для элементов, которые имеют свойства заданного объекта, иначе false.
Аргументы
-
collection(Массив|Объект|строка): Коллекция для итерации. -
[callback=identity](Функция|Объект|строка): Функция, вызываемая на каждой итерации. Если задано имя свойства или объект, то он будет использован для создания callback-функции в стиле ".pluck" или ".where", соответственно. -
[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])
Извлекает случайный элемент или n случайные элементы из коллекции.
Аргументы
-
collection(Массив|Объект|строка): Коллекция для выборки. -
[n](число): Количество элементов для выборки.
Возвращает
(Массив): Возвращает случайную выборку(и) collection.
Пример
_.sample([1, 2, 3, 4]); // => 2 _.sample([1, 2, 3, 4], 2); // => [3, 1]
_.shuffle(collection)
Создаёт массив перемешанных значений, используя версию алгоритма Фишера–Йейтса. См. http://en.wikipedia.org/wiki/Fisher-Yates_shuffle.
Аргументы
-
collection(Массив|Объект|строка): Коллекция для перемешивания.
Возвращает
(Массив): Возвращает новую перемешанную коллекцию.
Пример
_.shuffle([1, 2, 3, 4, 5, 6]); // => [4, 1, 6, 3, 5, 2]
_.size(collection)
Определяет размер collection, возвращая collection.length для массивов и массивоподобных объектов или количество собственных перечисляемых свойств для объектов.
Аргументы
-
collection(Массив|Объект|строка): Коллекция для проверки.
Возвращаемое значение
(число): Возвращает collection.length или количество собственных перечисляемых свойств.
Пример
_.size([1, 2]);
// => 2
_.size({ 'one': 1, 'two': 2, 'three': 3 });
// => 3
_.size('pebbles');
// => 7
_.some(collection, [callback=identity], [thisArg])
Проверяет, возвращает ли коллбэк истинное значение для любого элемента коллекции. Функция возвращает результат, как только найдёт значение, соответствующее условию, и не итерирует по всей коллекции. Коллбэк привязан к thisArg и вызывается с тремя аргументами; (значение, индекс|ключ, коллекция).
Если для callback указано имя свойства, созданный коллбэк в стиле ".pluck" вернёт значение свойства данного элемента.
Если для callback предоставлен объект, созданный коллбэк в стиле ".where" вернёт true для элементов, имеющих свойства данного объекта, иначе false.
Псевдонимы
_.any
Аргументы
-
collection(Массив|Объект|строка): Коллекция для итерирования. -
[callback=identity](Функция|Объект|строка): Функция, вызываемая на каждой итерации. Если указано имя свойства или объект, они будут использованы для создания коллбэка в стиле ".pluck" или ".where" соответственно. -
[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])
Создаёт массив элементов, отсортированный в порядке возрастания результатов выполнения каждого элемента в коллекции с помощью обратного вызова. Этот метод выполняет стабильную сортировку, то есть сохраняет исходный порядок элементов с равными значениями. Обратный вызов привязан к thisArg и вызывается с тремя аргументами; (значение, индекс|ключ, коллекция).
Если для callback указано имя свойства, созданный обратный вызов в стиле «.pluck» вернёт значение свойства данного элемента.
Если для callback предоставлен массив имён свойств, коллекция будет отсортирована по каждому значению свойства.
Если для callback предоставлен объект, созданный обратный вызов в стиле «.where» вернёт true для элементов, которые имеют свойства данного объекта, в противном случае false.
Аргументы
-
collection(Массив|Объект|строка): Коллекция для итерации. -
[callback=identity](Массив|Функция|Объект|строка): Функция, вызываемая на каждой итерации. Если указано имя свойства или объект, он будет использован для создания обратного вызова в стиле «.pluck» или «.where» соответственно. -
[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(коллекция)
Преобразует collection в массив.
Аргументы
-
collection(Массив|Объект|строка): Коллекция для преобразования.
Возвращаемое значение
(Массив): Возвращает новый преобразованный массив.
Пример
(function() { return _.toArray(arguments).slice(1); })(1, 2, 3, 4);
// => [2, 3, 4]
_.where(коллекция, свойства)
Выполняет глубокое сравнение каждого элемента в collection с заданным properties объектом, возвращая массив всех элементов, имеющих эквивалентные значения свойств.
Аргументы
-
collection(Массив|Объект|строка): Коллекция для итерации. -
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)
Создаёт функцию, которая выполняет func, с контекстом и аргументами созданной функции, только после того, как будет вызвана n раз.
Аргументы
-
n(число): Количество раз, которое функция должна быть вызвана перед выполнениемfunc. -
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])
Создаёт функцию, которая, при вызове, вызывает func с контекстом thisArg и добавляет любые дополнительные bind аргументы перед аргументами, переданными связанной функции.
Аргументы
-
func(Функция): Функция для привязки. -
[thisArg](*): Контекст привязкиfunc. -
[arg](...*): Аргументы для частичного применения.
Возвращает
(Функция): Возвращает новую связанную функцию.
Пример
var func = function(greeting) {
return greeting + ' ' + this.name;
};
func = _.bind(func, { 'name': 'fred' }, 'hi');
func();
// => 'hi fred'
_.bindAll(object, [methodName])
Привязывает методы объекта к самому объекту, перезаписывая существующие методы. Имена методов могут быть указаны как отдельные аргументы или как массивы имён методов. Если имена методов не предоставлены, все функции-свойства object будут привязаны.
Аргументы
-
object(Объект): Объект, к которому привязываются и назначаются привязанные методы. -
[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])
Создаёт функцию, которая при вызове вызывает метод в object[key] и добавляет любые дополнительные bindKey аргументы перед аргументами, предоставленными связанной функции. Этот метод отличается от _.bind тем, что позволяет связанным функциям ссылаться на методы, которые будут переопределены или ещё не существуют. См. http://michaux.ca/articles/lazy-function-definition-pattern.
Аргументы
-
object(Объект): Объект, к которому принадлежит метод. -
key(строка): Ключ метода. -
[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])
Создаёт функцию, являющуюся композицией предоставленных функций, где каждая функция потребляет возвращаемое значение функции, которая следует за ней. Например, композиция функций f(), g(), и h() даёт f(g(h())). Каждая функция выполняется с this связыванием составленной функции.
Аргументы
-
[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])
Создаёт функцию, которая принимает один или несколько аргументов func, которая при вызове либо выполняет func возвращая её результат, если все func аргументы были предоставлены, либо возвращает функцию, которая принимает один или несколько оставшихся func аргументов, и так далее. Арность func может быть указана, если func.length недостаточно.
Аргументы
-
func(Функция): Функция для кэррирования. -
[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])
Создаёт функцию, которая задержит выполнение func до истечения wait миллисекунд после последнего вызова. Предоставьте объект опций, чтобы указать, что func должно быть вызвано на начальном и/или конечном этапе таймаута. Последующие вызовы задержанной функции вернут результат последнего вызова func.
Примечание: Если leading и trailing опции true func, то func будет вызвано только в конце таймаута, если задержанная функция вызывается более одного раза в течение таймаута wait.
Аргументы
-
func(Функция): Функция, которую нужно затормозить. -
wait(число): Количество миллисекунд для задержки. -
[options](Объект): Объект опций. -
[options.leading=false](логическое значение): Указать выполнение на начальном этапе таймаута. -
[options.maxWait](число): Максимальное время, в течение которогоfuncразрешено задерживаться перед вызовом. -
[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])
Откладывает выполнение функции func до тех пор, пока текущий стек вызовов не будет очищен. Дополнительные аргументы будут переданы func при его вызове.
Аргументы
-
func(Функция): Функция, которую нужно отложить. -
[arg](...*): Аргументы для вызова функции.
Возвращает
(число): Возвращает идентификатор таймера.
Пример
_.defer(function(text) { console.log(text); }, 'deferred');
// logs 'deferred' after one or more milliseconds
_.delay(func, wait, [arg])
Выполняет функцию func через wait миллисекунд. Дополнительные аргументы будут переданы func при его вызове.
Аргументы
-
func(Функция): Функция задержки. -
wait(число): Количество миллисекунд задержки выполнения. -
[arg](...*): Аргументы для вызова функции.
Возвращаемое значение
(число): Возвращает идентификатор таймера.
Пример
_.delay(function(text) { console.log(text); }, 1000, 'later');
// => logs 'later' after one second
_.memoize(func, [resolver])
Создаёт функцию, которая запоминает результат вычисления func. Если resolver предоставлен, он будет использоваться для определения ключа кэша для хранения результата на основе аргументов, предоставленных вызываемой функции. По умолчанию, первый аргумент, предоставленный вызываемой функции, используется в качестве ключа кэша. Функция func выполняется с this связыванием вызываемой функции. Кэш результатов доступен как свойство cache вызываемой функции.
Аргументы
-
func(Функция): Функция, результат которой нужно запомнить. -
[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)
Создаёт функцию, которая ограничена выполнением func один раз. Повторные вызовы функции вернут значение первого вызова. Функция func выполняется с this связыванием созданной функции.
Аргументы
-
func(Функция): Ограничиваемая функция.
Возвращаемое значение
(Функция): Возвращает новую ограниченную функцию.
Пример
var initialize = _.once(createApplication); initialize(); initialize(); // `initialize` executes `createApplication` once
_.partial(func, [arg])
Создаёт функцию, которая при вызове вызывает func с любыми дополнительными partial аргументами, добавленными перед теми, которые предоставлены новой функции. Этот метод аналогичен _.bind, за исключением того, что он не изменяет this связывание.
Аргументы
-
func(Функция): Функция, к которой будут частично применены аргументы. -
[arg](...*): Аргументы, которые будут частично применены.
Возвращает
(Функция): Возвращает новую частично применённую функцию.
Пример
var greet = function(greeting, name) { return greeting + ' ' + name; };
var hi = _.partial(greet, 'hi');
hi('fred');
// => 'hi fred'
_.partialRight(func, [arg])
Этот метод похож на _.partial, за исключением того, что partial аргументы добавляются к тем, которые предоставляются новой функции.
Аргументы
-
func(Функция): Функция, к которой будут частично применены аргументы. -
[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])
Создаёт функцию, которая, при выполнении, будет вызывать функцию func не более одного раза за каждые wait миллисекунд. Предоставьте объект options, чтобы указать, что func должна вызываться в начале и/или в конце wait тайм-аута. Последующие вызовы функции throttle вернут результат последнего вызова func.
Примечание: Если leading и trailing параметры true func будет вызвана только в конце тайм-аута, если функция throttle вызывается более одного раза в течение wait тайм-аута.
Аргументы
-
func(Функция): Функция, которую следует ограничить по времени. -
wait(число): Количество миллисекунд, на которое нужно ограничить выполнение. -
[options](Объект): Объект опций. -
[options.leading=true](логическое значение): Указать выполнение в начале тайм-аута. -
[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)
Создаёт функцию, которая предоставляет value обернутой функции в качестве её первого аргумента. Дополнительные аргументы, переданные функции, добавляются к аргументам, переданным обернутой функции. Обёртка выполняется с this связыванием созданной функции.
Аргументы
-
value(*): Значение для обёртки. -
wrapper(Функция): Функция-обёртка.
Возвращаемое значение
(Функция): Возвращает новую функцию.
Пример
var p = _.wrap(_.escape, function(func, text) {
return '<p>' + func(text) + '</p>';
});
p('Fred, Wilma, & Pebbles');
// => '<p>Fred, Wilma, &amp; Pebbles</p>'
Методы «Объектов»
_.assign(object, [source], [callback], [thisArg])
Присваивает собственные перечисляемые свойства объекта(ов) source объекту destination. Последующие источники перезапишут присваивания свойств предыдущих источников. Если предоставлен callback, он будет выполнен для создания присвоенных значений. Callback привязан к thisArg и вызывается с двумя аргументами; (objectValue, sourceValue).
Псевдонимы
_.extend
Аргументы
-
object(Объект): Объект назначения. -
[source](...Объект): Источниковые объекты. -
[callback](Функция): Функция для настройки присваивания значений. -
[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])
Создаёт копию value. Если isDeep равен true, вложенные объекты также будут скопированы, в противном случае они будут присвоены по ссылке. Если предоставлен callback, он будет выполнен для создания скопированных значений. Если callback возвращает undefined, клонирование будет выполнено методом вместо этого. Callback привязан к thisArg и вызывается с одним аргументом; (value).
Аргументы
-
value(*): Значение для клонирования. -
[isDeep=false](boolean): Указать глубокое клонирование. -
[callback](Функция): Функция для настройки клонирования значений. -
[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])
Создаёт глубокую копию value. Если предоставлена функция обратного вызова, она будет выполнена для создания скопированных значений. Если обратный вызов возвращает undefined, клонирование будет выполнено этим методом. Функция обратного вызова привязана к thisArg и вызывается с одним аргументом; (значение).
Примечание: Этот метод слабо основан на алгоритме структурированного клонирования. Функции и узлы DOM не клонируются. Перечислимые свойства объектов arguments и объектов, созданных конструкторами, отличными от Object, клонируются в обычные объекты Object. См. http://www.w3.org/TR/html5/infrastructure.html#internal-structured-cloning-algorithm.
Аргументы
-
value(*): Значение для глубокого клонирования. -
[callback](Функция): Функция для настройки клонирования значений. -
[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])
Создаёт объект, который наследует от заданного объекта-прототипа. Если предоставлен объект, его собственные перечислимые свойства присваиваются созданному объекту.
Аргументы
-
prototype(Объект): Объект для наследования. -
[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])
Присваивает собственные перечислимые свойства объекта(ов) source объекту destination для всех свойств destination, которые разрешаются в undefined. После установки свойства дополнительные значения по умолчанию для того же свойства будут игнорироваться.
Аргументы
-
object(Объект): Объект назначения. -
[source](...Объекты): Источник объектов.
Возвращаемое значение
(Объект): Возвращает объект назначения.
Пример
var object = { 'name': 'barney' };
_.defaults(object, { 'name': 'fred', 'employer': 'slate' });
// => { 'name': 'barney', 'employer': 'slate' }
_.findKey(object, [callback=identity], [thisArg])
Этот метод похож на _.findIndex, за исключением того, что он возвращает ключ первого элемента, который удовлетворяет условию обратного вызова, а не сам элемент.
Если в качестве параметра указано имя свойства для callback созданный обратный вызов в стиле ".pluck" возвращает значение свойства данного элемента.
Если в качестве параметра передан объект для callback созданный обратный вызов в стиле ".where" возвращает true для элементов, которые имеют свойства данного объекта, в противном случае false.
Аргументы
-
object(Объект): Объект для поиска. -
[callback=identity](Функция|Объект|строка): Функция, вызываемая на каждой итерации. Если указано имя свойства или объект, он будет использован для создания обратного вызова в стиле ".pluck" или ".where", соответственно. -
[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])
Этот метод похож на _.findKey, за исключением того, что он итерирует элементы объекта в обратном порядке.
Если в качестве параметра указано имя свойства для callback созданный обратный вызов в стиле ".pluck" возвращает значение свойства данного элемента.
Если в качестве параметра передан объект для callback созданный обратный вызов в стиле ".where" возвращает true для элементов, которые имеют свойства данного объекта, в противном случае false.
Аргументы
-
object(Объект): Объект для поиска. -
[callback=identity](Функция|Объект|строка): Функция, вызываемая на каждой итерации. Если указано имя свойства или объект, будет создана функция обратного вызова в стиле ".pluck" или ".where", соответственно. -
[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])
Итерирует по собственным и унаследованным перечисляемым свойствам объекта, выполняя функцию обратного вызова для каждого свойства. Функция обратного вызова связана с thisArg и вызывается с тремя аргументами; (значение, ключ, объект). Функции обратного вызова могут завершить итерацию досрочно, явно вернув false.
Аргументы
-
object(Объект): Объект для итерирования. -
[callback=identity](Функция): Функция, вызываемая на каждой итерации. -
[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])
Этот метод похож на _.forIn, за исключением того, что он итерирует по элементам объекта в обратном порядке.
Аргументы
-
object(Объект): Объект для итерирования. -
[callback=identity](Функция): Функция, вызываемая на каждой итерации. -
[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])
Перебирает собственные перечисляемые свойства объекта, выполняя обратный вызов для каждого свойства. Обратный вызов связан с thisArg и вызывается с тремя аргументами; (значение, ключ, объект). Обратные вызовы могут досрочно завершить итерацию, явно возвращая false.
Аргументы
-
object(Объект): Объект, по которому нужно выполнить перебор. -
[callback=identity](Функция): Функция, вызываемая на каждой итерации. -
[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])
Этот метод похож на _.forOwn, за исключением того, что он перебирает элементы объекта в обратном порядке.
Аргументы
-
object(Объект): Объект, по которому нужно выполнить перебор. -
[callback=identity](Функция): Функция, вызываемая на каждой итерации. -
[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)
Создаёт отсортированный массив имён свойств всех перечисляемых свойств, собственных и унаследованных, объекта object, имеющих значения типа функция.
Псевдонимы
_.methods
Аргументы
-
object(Объект): Объект для проверки.
Возвращает
(Массив): Возвращает массив имён свойств, имеющих значения типа функция.
Пример
_.functions(_); // => ['all', 'any', 'bind', 'bindAll', 'clone', 'compact', 'compose', ...]
_.has(object, key)
Проверяет, существует ли указанное имя свойства как прямое свойство объекта object, а не как унаследованное свойство.
Аргументы
-
object(Объект): Объект для проверки. -
key(строка): Имя свойства для проверки.
Возвращает
(boolean): Возвращает true если ключ является прямым свойством, иначе false.
Пример
_.has({ 'a': 1, 'b': 2, 'c': 3 }, 'b');
// => true
_.invert(object)
Создаёт объект, состоящий из инвертированных ключей и значений заданного объекта.
Аргументы
-
object(Объект): Объект для инвертирования.
Возвращаемое значение
(Объект): Возвращает созданный инвертированный объект.
Пример
_.invert({ 'first': 'fred', 'second': 'barney' });
// => { 'fred': 'first', 'barney': 'second' }
_.isArguments(value)
Проверяет, является ли value объектом типа arguments.
Аргументы
-
value(*): Значение для проверки.
Возвращаемое значение
(boolean): Возвращает true если value является объектом типа arguments , иначе false.
Пример
(function() { return _.isArguments(arguments); })(1, 2, 3);
// => true
_.isArguments([1, 2, 3]);
// => false
_.isArray(value)
Проверяет, является ли value массивом.
Аргументы
-
value(*): Значение для проверки.
Возвращаемое значение
(boolean): Возвращает true если value является массивом, иначе false.
Пример
(function() { return _.isArray(arguments); })();
// => false
_.isArray([1, 2, 3]);
// => true
_.isBoolean(value)
Проверяет, является ли value булевым значением.
Аргументы
-
value(*): Значение для проверки.
Возвращаемое значение
(boolean): Возвращает true если value является булевым значением, иначе false.
Пример
_.isBoolean(null); // => false
_.isDate(value)
Проверяет, является ли value датой.
Аргументы
-
value(*): Значение для проверки.
Возвращаемое значение
(boolean): Возвращает true если value является датой, иначе false.
Пример
_.isDate(new Date); // => true
_.isElement(value)
Проверяет, является ли value элементом DOM.
Аргументы
-
value(*): Значение для проверки.
Возвращает
(boolean): Возвращает true если value является элементом DOM, иначе false.
Пример
_.isElement(document.body); // => true
_.isEmpty(value)
Проверяет, является ли value пустым. Массивы, строки или arguments объекты с длиной 0 и объекты без собственных перечисляемых свойств считаются «пустыми».
Аргументы
-
value(Array|Object|string): Значение для проверки.
Возвращает
(boolean): Возвращает true если value пусто, иначе false.
Пример
_.isEmpty([1, 2, 3]);
// => false
_.isEmpty({});
// => true
_.isEmpty('');
// => true
_.isEqual(a, b, [callback], [thisArg])
Производит глубокое сравнение двух значений, чтобы определить, эквивалентны ли они. Если указан callback, он будет вызываться для сравнения значений. Если callback возвращает undefined сравнения будут выполнены методом вместо него. Callback привязан к thisArg и вызывается с двумя аргументами; (a, b).
Аргументы
-
a(*): Значение для сравнения. -
b(*): Другое значение для сравнения. -
[callback](Function): Функция для настройки сравнения значений. -
[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)
Проверяет, является ли value конечным числом или может быть приведено к конечному числу.
Примечание: Это не то же самое, что и встроенная функция isFinite, которая возвращает true для булевых значений и пустых строк. См. http://es5.github.io/#x15.1.2.5.
Аргументы
-
value(*): Значение для проверки.
Возвращаемое значение
(boolean): Возвращает true, если значение value является конечным, в противном случае false.
Пример
_.isFinite(-101);
// => true
_.isFinite('10');
// => true
_.isFinite(true);
// => false
_.isFinite('');
// => false
_.isFinite(Infinity);
// => false
_.isFunction(value)
Проверяет, является ли value функцией.
Аргументы
-
value(*): Значение для проверки.
Возвращаемое значение
(boolean): Возвращает true, если значение value является функцией, в противном случае false.
Пример
_.isFunction(_); // => true
_.isNaN(value)
Проверяет, является ли value NaN.
Примечание: Это не то же самое, что и встроенная функция isNaN, которая вернёт true для undefined и других значений, не являющихся числовыми. См. http://es5.github.io/#x15.1.2.4.
Аргументы
-
value(*): Значение для проверки.
Возвращаемое значение
(boolean): Возвращает true, если значение value является NaN, в противном случае false.
Пример
_.isNaN(NaN); // => true _.isNaN(new Number(NaN)); // => true isNaN(undefined); // => true _.isNaN(undefined); // => false
_.isNull(value)
Проверяет, является ли value null.
Аргументы
-
value(*): Значение для проверки.
Возвращаемое значение
(boolean): Возвращает true, если значение value является null, в противном случае false.
Пример
_.isNull(null); // => true _.isNull(undefined); // => false
_.isNumber(value)
Проверяет, является ли value числом.
Примечание: NaN считается числом. См. http://es5.github.io/#x8.5.
Аргументы
-
value(*): Значение для проверки.
Возвращаемое значение
(boolean): Возвращает true, если value является числом, иначе false.
Пример
_.isNumber(8.4 * 5); // => true
_.isObject(value)
Проверяет, является ли value типом данных Object. (например, массивы, функции, объекты, регулярные выражения, new Number(0), и new String(''))
Аргументы
-
value(*): Значение для проверки.
Возвращаемое значение
(boolean): Возвращает true, если value является объектом, иначе false.
Пример
_.isObject({});
// => true
_.isObject([1, 2, 3]);
// => true
_.isObject(1);
// => false
_.isPlainObject(value)
Проверяет, является ли value объектом, созданным конструктором Object.
Аргументы
-
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)
Проверяет, является ли value регулярным выражением.
Аргументы
-
value(*): Значение для проверки.
Возвращаемое значение
(boolean): Возвращает true, если value является регулярным выражением, иначе false.
Пример
_.isRegExp(/fred/); // => true
_.isString(value)
Проверяет, является ли value строкой.
Аргументы
-
value(*): Значение для проверки.
Возвращаемое значение
(boolean): Возвращает true если value является строкой, иначе false.
Пример
_.isString('fred');
// => true
_.isUndefined(value)
Проверяет, является ли value undefined.
Аргументы
-
value(*): Значение для проверки.
Возвращаемое значение
(boolean): Возвращает true если value является undefined, иначе false.
Пример
_.isUndefined(void 0); // => true
_.keys(object)
Создаёт массив, содержащий имена собственных перечисляемых свойств объекта.
Аргументы
-
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])
Создаёт объект с теми же ключами, что и у object , и значениями, сгенерированными путём применения callback к каждому собственному перечисляемому свойству object. Callback привязывается к thisArg и вызывается с тремя аргументами; (значение, ключ, объект).
Если для callback задано имя свойства, созданный callback в стиле ".pluck" возвращает значение свойства заданного элемента.
Если для callback задан объект, созданный callback в стиле ".where" возвращает true для элементов, имеющих свойства заданного объекта, иначе false.
Аргументы
-
object(Object): Объект для итерирования. -
[callback=identity](Function|Object|string): Функция, вызываемая на каждой итерации. Если указано имя свойства или объект, они будут использованы для создания callback в стиле ".pluck" или ".where", соответственно. -
[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])
Рекурсивно объединяет собственные перечисляемые свойства объекта(ов) источника, которые не приводят к undefined в целевой объект. Последующие источники перезапишут присвоения свойств предыдущих источников. Если указана функция обратного вызова, она будет выполнена для получения объединённых значений целевых и исходных свойств. Если функция обратного вызова возвращает undefined , объединение будет выполнено методом. Функция обратного вызова связана с thisArg и вызывается с двумя аргументами; (objectValue, sourceValue).
Arguments
-
object(Object): Целевой объект. -
[source](...Object): Объекты-источники. -
[callback](Function): Функция для настройки объединения свойств. -
[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])
Создаёт поверхностную копию object, исключая указанные свойства. Имена свойств могут быть указаны как отдельные аргументы или как массивы имён свойств. Если указана функция обратного вызова, она будет вызвана для каждого свойства object, исключая свойства, для которых функция обратного вызова возвращает истинное значение. Функция обратного вызова связана с thisArg и вызывается с тремя аргументами; (value, key, object).
Arguments
-
object(Object): Исходный объект. -
[callback](...((string|string[])|Function)): Свойства для исключения или функция, вызываемая на каждой итерации. -
[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)
Создаёт двумерный массив пар ключ-значение объекта, т.е. [[key1, value1], [key2, value2]].
Arguments
-
object(Object): Объект для проверки.
Returns
(Массив): Возвращает новый массив пар ключ-значение.
Пример
_.pairs({ 'barney': 36, 'fred': 40 });
// => [['barney', 36], ['fred', 40]] (property order is not guaranteed across environments)
_.pick(object, [callback], [thisArg])
Создает поверхностную копию object, содержащую указанные свойства. Имена свойств могут быть указаны как отдельные аргументы или как массивы имён свойств. Если передан обратный вызов, он будет выполнен для каждого свойства object, выбирая свойства, для которых обратный вызов возвращает значение, отличное от false. Обратный вызов привязан к thisArg и вызывается с тремя аргументами; (значение, ключ, объект).
Аргументы
-
object(Объект): Источник объекта. -
[callback](...((строка|массив строк)|Функция)): Функция, вызываемая на каждой итерации, или имена свойств для выбора, заданные как отдельные имена свойств или массивы имён свойств. -
[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])
Альтернатива _.reduce, этот метод преобразует object в новый accumulator объект, который является результатом выполнения каждого из его собственных перечисляемых свойств через обратный вызов, при каждом выполнении обратного вызова потенциально изменяя accumulator объект. Обратный вызов привязан к thisArg и вызывается с четырьмя аргументами; (аккумулятор, значение, ключ, объект). Обратные вызовы могут завершать итерацию раньше, явно возвращая false.
Аргументы
-
object(Массив|Объект): Объект, по которому необходимо выполнить итерацию. -
[callback=identity](Функция): Функция, вызываемая на каждой итерации. -
[accumulator](*): Значение накопителя по умолчанию. -
[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)
Создаёт массив, состоящий из значений собственных перечисляемых свойств object.
Аргументы
-
object(Объект): Объект для проверки.
Возвращаемое значение
(Массив): Возвращает массив значений свойств.
Пример
_.values({ 'one': 1, 'two': 2, 'three': 3 });
// => [1, 2, 3] (property order is not guaranteed across environments)
Методы «Утилиты»
_.constant(value)
Создаёт функцию, которая возвращает value.
Аргументы
-
value(*): Значение, которое должно возвращаться новой функцией.
Возвращаемое значение
(Функция): Возвращает новую функцию.
Пример
var object = { 'name': 'fred' };
var getter = _.constant(object);
getter() === object;
// => true
_.createCallback([func=identity], [thisArg], [argCount])
Производит обратный вызов, привязанный к необязательному thisArg. Если func является именем свойства, созданный обратный вызов вернёт значение свойства для данного элемента. Если func является объектом, созданный обратный вызов вернёт true для элементов, содержащих эквивалентные свойства объекта, в противном случае он вернёт false.
Аргументы
-
[func=identity](*): Значение для преобразования в обратный вызов. -
[thisArg](*): Связываниеthisсозданного обратного вызова. -
[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)
Преобразует символы &, <, >, ", и ' в string в соответствующие HTML-сущности.
Аргументы
-
string(строка): Строка для экранирования.
Возвращаемое значение
(строка): Возвращает экранированную строку.
Пример
_.escape('Fred, Wilma, & Pebbles');
// => 'Fred, Wilma, &amp; Pebbles'
_.identity(value)
Этот метод возвращает первый переданный ему аргумент.
Аргументы
-
value(*): Любое значение.
Возвращаемое значение
(*): Возвращает value.
Пример
var object = { 'name': 'fred' };
_.identity(object) === object;
// => true
_.mixin([object=lodash], source, [options])
Добавляет свойства-функции из объекта source к объекту destination. Если object является функцией, методы также будут добавлены к его прототипу.
Аргументы
-
[object=lodash](Функция|Объект): Объект назначения. -
source(Объект): Объект функций для добавления. -
[options](Объект): Объект опций. -
[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()
Возвращает переменную '_' к её предыдущему значению и возвращает ссылку на функцию lodash.
Возвращаемое значение
(Функция): Возвращает функцию lodash.
Пример
var lodash = _.noConflict();
_.noop()
Функция без действий.
Пример
var object = { 'name': 'fred' };
_.noop(object) === undefined;
// => true
_.now
Возвращает количество миллисекунд, прошедших с начала эпохи 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])
Преобразует заданное значение в целое число по указанному основанию. Если radix равно undefined или 0, используется radix 10, за исключением случаев, когда value является шестнадцатеричным, в этом случае используется radix 16.
Примечание: Этот метод избегает различий в реализациях parseInt ES3 и ES5. См. http://es5.github.io/#E.
Аргументы
-
value(строка): Значение для разбора. -
[radix](число): Основание, используемое для интерпретации значения для разбора.
Возвращаемое значение
(число): Возвращает новое целое значение.
Пример
_.parseInt('08');
// => 8
_.property(key)
Создаёт функцию в стиле "_.pluck", которая возвращает key значение заданного объекта.
Аргументы
-
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])
Генерирует случайное число между min и max (включительно). Если передан только один аргумент, возвращается случайное число между 0 и переданным числом. Если floating истинно или min или max являются числами с плавающей запятой, будет возвращено число с плавающей запятой вместо целого числа.
Аргументы
-
[min=0](число): Минимальное возможное значение. -
[max=1](число): Максимальное возможное значение. -
[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)
Разрешает значение свойства key в object. Если key является функцией, она будет вызвана с привязкой this к object, и её результат будет возвращён; в противном случае возвращается значение свойства. Если object ложно, возвращается undefined.
Аргументы
-
object(Объект): Объект для проверки. -
key(строка): Имя свойства для разрешения.
Возвращаемое значение
(*): Возвращает разрешённое значение.
Пример
var object = {
'cheese': 'crumpets',
'stuff': function() {
return 'nonsense';
}
};
_.result(object, 'cheese');
// => 'crumpets'
_.result(object, 'stuff');
// => 'nonsense'
_.runInContext([context=root])
Создаёт новую функцию lodash с использованием заданного объекта контекста.
Аргументы
-
[context=root](Объект): Объект контекста.
Возвращаемое значение
(Функция): Возвращает функцию lodash.
_.template(text, data, [options], [sourceURL], [variable])
Микро-шаблонный метод, который обрабатывает произвольные разделители, сохраняет пробелы и корректно экранирует кавычки внутри интерполированного кода.
Примечание: В режиме разработки _.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
Аргументы
-
text(строка): Текст шаблона. -
data(объект): Объект данных, используемый для заполнения текста. -
[options](объект): Объект параметров. -
[options.escape](RegExp): Разделитель для «экранирования». -
[options.evaluate](RegExp): Разделитель для «вычисления». -
[options.imports](объект): Объект для импорта в шаблон в качестве локальных переменных. -
[options.interpolate](RegExp): Разделитель для «интерполяции». -
[sourceURL](строка): sourceURL скомпилированного исходного кода шаблона. -
[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>&lt;script&gt;</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])
Выполняет callback n раз, возвращая массив результатов каждого вызова callback. Callback привязан к thisArg и вызывается с одним аргументом; (индекс).
Аргументы
-
n(число): Количество раз для выполнения callback. -
callback(Функция): Функция, вызываемая на каждой итерации. -
[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)
Обратная функция _.escape - этот метод преобразует HTML-сущности &amp;, &lt;, &gt;, &quot;, и &#39; в строке string в соответствующие символы.
Аргументы
-
string(строка): Строка для преобразования.
Возвращает
(строка): Возвращает строку без экранирования.
Пример
_.unescape('Fred, Barney &amp; Pebbles');
// => 'Fred, Barney & Pebbles'
_.uniqueId([prefix])
Генерирует уникальный идентификатор. Если prefix указан, идентификатор будет добавлен к нему.
Аргументы
-
[prefix](строка): Значение для префикса идентификатора.
Возвращает
(строка): Возвращает уникальный идентификатор.
Пример
_.uniqueId('contact_');
// => 'contact_104'
_.uniqueId();
// => '105'
Свойства
_.VERSION
Семантический номер версии.
_.support
Объект, используемый для флагования возможностей сред.
_.support.argsClass
Обнаружение, является ли [[Class]] объекта arguments разрешимым (все, кроме Firefox < 4, IE < 9).
_.support.argsObject
Обнаружение, являются ли объекты arguments объектами Object (все, кроме Narwhal и Opera < 10.5).
_.support.enumErrorProps
Обнаружение, являются ли свойства name или message объекта Error.prototype перечисляемыми по умолчанию. (IE < 9, Safari < 5.1)
_.support.enumPrototypes
Обнаружение, являются ли свойства prototype перечисляемыми по умолчанию.
Firefox < 3.6, Opera > 9.50 - Opera < 11.60, и Safari < 5.1 (если прототип или свойство на прототипе было установлено) неправильно устанавливает значение свойства [[Enumerable]] функции в prototype.
_.support.funcDecomp
Определить, могут ли функции быть дизассемблированы 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
По умолчанию, разделители шаблонов, используемые Lo-Dash, аналогичны тем, что в встроенном Ruby (ERB). Измените следующие параметры шаблона, чтобы использовать альтернативные разделители.
_.templateSettings.escape
Используется для обнаружения значений свойств data для HTML-экранирования.
_.templateSettings.evaluate
Используется для обнаружения кода для оценки.
_.templateSettings.imports
Используется для импорта переменных в скомпилированный шаблон.
_.templateSettings.imports._
Ссылка на функцию lodash.
_.templateSettings.interpolate
Используется для обнаружения значений свойств data для вставки.
_.templateSettings.variable
Используется для ссылки на объект данных в тексте шаблона.
© 2012–2016 The Dojo Foundation
Licensed under the MIT License.
https://lodash.com/docs/2.4.2