Mat*_*ood 7 javascript arrays reduce transformation
做一些数据转换练习并陷入困境.我有一个对象,我想转换为from (starting)- > to (expected ending)输出如下所述.我正在尝试使用Array.reduce并Object.assign保持输出纯净.但我无法让它正常工作.
/**
* from (starting): {topic: {id: 2}, products: {id: 3}}
* to (expected ending): {topic: 2, products: 3}
*/
const starting = {topic: {id: 2}, products: {id: 3}};
const ending = Object.keys(starting).reduce((p, key) => {
if(!p[key]) p[key] = key;
return Object.assign(p[key], starting[key].id);
}, {})
Run Code Online (Sandbox Code Playgroud)
您可以使用reduce,只需记住在每次迭代后返回起始对象.
function convert(start) {
return Object.keys(starting).reduce((o, key) => {
o[key] = start[key].id;
return o;
}, {});
}
const starting = {topic: {id: 2}, products: {id: 3}};
console.log(convert(starting));Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
118 次 |
| 最近记录: |