将对象映射为数组
使用提供的映射函数,将对象映射为对象数组。
- 使用
Object.entries()
获取对象的键值对数组。 - 使用
Array.prototype.reduce()
将数组映射为对象。 - 使用
mapFn
映射对象的键和值,并使用Array.prototype.push()
将映射后的值添加到数组中。
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 } ]