Maps an object to an object array, using the provided mapping function.
- Use
Object.entries()
to get an array of the object’s key-value pairs. - Use
Array.prototype.reduce()
to map the array to an object. - Use
mapFn
to map the keys and values of the object andArray.prototype.push()
to add the mapped values to the array.
代码实现
const listify = (obj, mapFn) =>
Object.entries(obj).reduce((acc, [key, value]) => {
acc.push(mapFn(key, value));
return acc;
}, []);
const people = { John: { age: 42 }, Adam: { age: 39 } };
listify(people, (key, value) => ({ name: key, ...value }));
// [ { name: 'John', age: 42 }, { name: 'Adam', age: 39 } ]