Альтернатива устаревшему методу _.pluck в Lodash 4.x
Пройдите тест, узнайте какой профессии подходите
Быстрый ответ
// Время заменить _.pluck на его извращенный эквивалент: _.map с передачей свойства
_.map(array, 'property');
Функция _.pluck
исчезла из Lodash начиная с версии v4.0.0. Теперь в качестве её наследника выступает _.map
с передачей свойства, который предлагает вам одинаковые функциональные возможности более изящным способом.
// '_.pluck(objects, 'key')' превращается в элегантный однострочник:
const values = _.map(objects, 'key');
Пример для ценителей изящества кода. Получим возраст пользователей:
// Превращаем возраст в абсолют? Мы вас понимаем!
const users = [{ 'name': 'Alice', 'age': 40 }, { 'name': 'Bob', 'age': 30 }];
const ages = _.map(users, 'age'); // [40, 30]
Следите за эволюцией Lodash с помощью Lodash Changelog, который поможет вам перейти от устаревших методов к новым подходам. И, раз мы уже подняли эту тему, то документация Lodash приглашает вас исследовать вводную информацию, полезную для миграции.
Встречайте нативный ES6: альтернативы
Lodash поражает, но с появлением стрелочных функций в ES6, его некоторые методы кажутся избыточными. Попробуйте использовать альтернативы из нативного JavaScript:
// Пишите код, как римляне строят дороги:
const extractedValues = objects.map(object => object.key);
Этот стиль написания кода соответствует современным стандартам и уменьшает зависимость от сторонних библиотек.
Дух .pluck: расширение Lodash через .mixin
Если _.pluck
был вашим любимцем, то его можно возродить через _.mixin
следующим образом:
_.mixin({
// Подключаем _.pluck 2.0...
pluck: (array, key) => _.map(array, key)
});
// Вот так! Ваш любимый _.pluck снова в строю!
const values = _.pluck(objects, 'key');
Продолжайте использовать _.pluck
, применяя возможность добавления собственных методов, таких как pluck
.
Оставайтесь в курсе: обновления библиотек
Гибкость и адаптация – ключи к успеху в мире программирования. Библиотеки развиваются, форматы становятся более лаконичными, и весь этот процесс важно сопровождать улучшением производительности кода. Оставайтесь в курсе обновлений и совершенствуйте свой код.
Визуализация
Вообразите эволюцию от _.pluck
к его современному аналогу в JavaScript как технологический прорыв:
_.pluck (🦢) => _.map (🗺️)
Это как переход от использования обычного компаса (🧭) к новомодной, точной системе GPS (🛰️), которая позволяет быстро находить необходимые свойства в массиве объектов.
// _.pluck работает при помощи компаса (🧭)
_.pluck(arrayOfObjects, 'key');
// ...превращается в...
// _.map, который использует GPS навигацию (🛰️)
_.map(arrayOfObjects, 'key');
Этап преображения закончен! 🎉
Гнездо Lodash's (👝): Мы перебираем функции по одной...
Волшебство нативного map JavaScript (🎩): Извлекаем значения, как волшебным образом!
Когда выбираем map ES6 вместо Lodash
В каких случаях ES6 map
предпочтительнее Lodash?
- Когда вам требуется простая трансформация массива без необходимости глубокого клонирования.
- Если вы работаете с нативными массивами и хотите использовать цепочки вызовов без Lodash.
- Стремитесь к оптимизации производительности? Движок JavaScript V8 был нацелен на оптимизацию нативных функций.
Осторожно: потенциальные проблемы
Будьте внимательны при переходе с _.pluck
на _.map
:
- Проверьте, что имена свойств присутствуют у всех объектов одинаково, так как
_.pluck
неработает с отсутствующими свойствами. - Хотите изменить структуру объектов? Сделайте это целенаправленно с
_.map
, уделяя внимание деталям вместо использования сокращенных форм.