拆解对象
从一个对象和其数组类型的属性中生成一个对象数组。
- 使用对象解构来排除指定
key
的键值对。 - 使用
Array.prototype.map()
来创建一个对象数组,其中包含给定key
的值。 - 每个对象包含原始对象的值,除了
key
,它被映射为其各个值。
const unwind = (key, obj) => {
const { [key]: _, ...rest } = obj;
return obj[key].map(val => ({ ...rest, [key]: val }));
};
unwind('b', { a: true, b: [1, 2] }); // [{ a: true, b: 1 }, { a: true, b: 2 }]