Как сопоставить массив с объектом в JavaScript
Чтобы сопоставить массив объектов с объектом в JavaScript, следуйте этим шагам:
- Откройте Терминал/SSH и введите
node
, чтобы начать практиковаться в написании кода.
- Используйте
Array.prototype.reduce()
, чтобы сопоставить массив с объектом.
- Используйте параметр
mapKey
, чтобы сопоставить ключи объекта, и параметр mapValue
, чтобы сопоставить значения.
Вот пример кода, который демонстрирует, как использовать функцию objectify
, чтобы сопоставить массив объектов с объектом:
const objectify = (arr, mapKey, mapValue = (i) => i) =>
arr.reduce((acc, item) => {
acc[mapKey(item)] = mapValue(item);
return acc;
}, {});
Затем вы можете использовать функцию objectify
, чтобы сопоставить массив объектов с объектом следующими способами:
const people = [
{ name: "John", age: 42 },
{ name: "Adam", age: 39 }
];
// Сопоставьте массив объектов с объектом, используя свойство name в качестве ключей
objectify(people, (p) => p.name.toLowerCase());
// Вывод: { john: { name: 'John', age: 42 }, adam: { name: 'Adam', age: 39 } }
// Сопоставьте массив объектов с объектом, используя свойство name в качестве ключей и свойство age в качестве значений
objectify(
people,
(p) => p.name.toLowerCase(),
(p) => p.age
);
// Вывод: { john: 42, adam: 39 }