Альтернатива устаревшему методу _.pluck в Lodash 4.x

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

JS
Скопировать код
// Время заменить _.pluck на его извращенный эквивалент: _.map с передачей свойства
_.map(array, 'property');

Функция _.pluck исчезла из Lodash начиная с версии v4.0.0. Теперь в качестве её наследника выступает _.map с передачей свойства, который предлагает вам одинаковые функциональные возможности более изящным способом.

JS
Скопировать код
// '_.pluck(objects, 'key')' превращается в элегантный однострочник:
const values = _.map(objects, 'key');

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

JS
Скопировать код
// Превращаем возраст в абсолют? Мы вас понимаем!
const users = [{ 'name': 'Alice', 'age': 40 }, { 'name': 'Bob', 'age': 30 }];
const ages = _.map(users, 'age'); // [40, 30]

Следите за эволюцией Lodash с помощью Lodash Changelog, который поможет вам перейти от устаревших методов к новым подходам. И, раз мы уже подняли эту тему, то документация Lodash приглашает вас исследовать вводную информацию, полезную для миграции.

Кинга Идем в IT: пошаговый план для смены профессии

Встречайте нативный ES6: альтернативы

Lodash поражает, но с появлением стрелочных функций в ES6, его некоторые методы кажутся избыточными. Попробуйте использовать альтернативы из нативного JavaScript:

JS
Скопировать код
// Пишите код, как римляне строят дороги:
const extractedValues = objects.map(object => object.key);

Этот стиль написания кода соответствует современным стандартам и уменьшает зависимость от сторонних библиотек.

Дух .pluck: расширение Lodash через .mixin

Если _.pluck был вашим любимцем, то его можно возродить через _.mixin следующим образом:

JS
Скопировать код
_.mixin({
  // Подключаем _.pluck 2.0...
  pluck: (array, key) => _.map(array, key)
});

// Вот так! Ваш любимый _.pluck снова в строю!
const values = _.pluck(objects, 'key');

Продолжайте использовать _.pluck, применяя возможность добавления собственных методов, таких как pluck.

Оставайтесь в курсе: обновления библиотек

Гибкость и адаптация – ключи к успеху в мире программирования. Библиотеки развиваются, форматы становятся более лаконичными, и весь этот процесс важно сопровождать улучшением производительности кода. Оставайтесь в курсе обновлений и совершенствуйте свой код.

Визуализация

Вообразите эволюцию от _.pluck к его современному аналогу в JavaScript как технологический прорыв:

Markdown
Скопировать код
_.pluck (🦢) => _.map (🗺️)

Это как переход от использования обычного компаса (🧭) к новомодной, точной системе GPS (🛰️), которая позволяет быстро находить необходимые свойства в массиве объектов.

JS
Скопировать код
// _.pluck работает при помощи компаса (🧭)
_.pluck(arrayOfObjects, 'key');

// ...превращается в...
// _.map, который использует GPS навигацию (🛰️)
_.map(arrayOfObjects, 'key');

Этап преображения закончен! 🎉

Markdown
Скопировать код
Гнездо Lodash's (👝): Мы перебираем функции по одной...
Волшебство нативного map JavaScript (🎩): Извлекаем значения, как волшебным образом!

Когда выбираем map ES6 вместо Lodash

В каких случаях ES6 map предпочтительнее Lodash?

  • Когда вам требуется простая трансформация массива без необходимости глубокого клонирования.
  • Если вы работаете с нативными массивами и хотите использовать цепочки вызовов без Lodash.
  • Стремитесь к оптимизации производительности? Движок JavaScript V8 был нацелен на оптимизацию нативных функций.

Осторожно: потенциальные проблемы

Будьте внимательны при переходе с _.pluck на _.map:

  • Проверьте, что имена свойств присутствуют у всех объектов одинаково, так как _.pluck неработает с отсутствующими свойствами.
  • Хотите изменить структуру объектов? Сделайте это целенаправленно с _.map, уделяя внимание деталям вместо использования сокращенных форм.

Полезные материалы

Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей
Какой метод заменил устаревший _.pluck в Lodash 4.x?
1 / 5