Из ИТ-архива Competa; впервые опубликовано Марией Кристиной ди Термине 01.05.2018.

Lodash — это очень полезный набор инструментов для JavaScript, который помогает нам писать и поддерживать код в чистоте и легкости для чтения. Кроме того, это также экономит наше время и повышает производительность наших приложений. Lodash — это «форк» библиотеки Underscore, предоставляющий дополнительные функции. Ниже я хочу представить некоторые из наиболее полезных методов, которые я часто использую в своих проектах:

1. Карта

Перебрать массив (называемый коллекцией) и вернуть новый. Он работает как собственный метод массива в JavaScript, но также может выполнять итерацию глубоко вложенных свойств, предоставляя строку вместо функции обратного вызова.

Примеры:

// Fetch the name of the first fuit from each owner
let fruitArr = [{
  "owner": "Colin",
  "fruit": [{"name":"apple"}, {"name": "orange"}]
}, {
  "owner": "John",
  "fruit": [{"name":"banana"}, {"name": "peach"}]
}];
// Array's map method.
fruitArr.map(function(owner){
  return owner.fruit[0].name;
});
// Lodash
_.map(ownerArr, 'fruit[0].name');

2. Фильтр

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

Примеры:

let friends = [
  { 'friend': 'Bob', 'age': 36, 'married': true },
  { 'friend': 'Anne', 'age': 40, 'married': false }
];
_.filter(friends, function(o) { return !o.married; });
// => objects for ['Anne']
_.filter(friends, { 'age': 36, 'married': true });
// => objects for ['Bob']
_.filter(friends, ['married', false]);
// => objects for ['Anne']
_.filter(friends, 'married');
// => objects for ['Bob']

3. Включает

Метод «включает» ранее назывался «содержит» и «включает». Он проверяет, является ли элемент частью переданной коллекции, и сравнивает объекты по ссылке. Возвращает true, если значение найдено, иначе false.

Пример:

_.includes([1, 2, 3], 1);
// => true
_.includes([1, 2, 3], 1, 2);
// => false
_.includes({ 'userA': 1, 'userB': 2 }, 1);
// => true
_.includes('Welcome', 'me');
// => true