这是我的初始数组:
[
{
id: 1,
name: 'pos',
code: 'pos123',
appCode: 22,
},
{
id: 2,
name: 'tailor',
code: 'tailor123',
appCode: 21,
}
]我想要的输出:
{
pos123: {
id: 1,
name: 'pos',
code: 'pos123',
appCode: 22,
},
tailor123: {
id: 2,
name: 'tailor',
code: 'tailor123',
appCode: 21,
},
}我试着用map做这件事,但我想不出来。我应该在这里使用reduce吗?
发布于 2018-06-04 06:14:32
您的输出不是数组--它是一个对象,因此必须使用reduce。您只能使用map将一个数组中的X个项目数转换为另一个数组中的X个项目数。
const input=[{id:1,name:'pos',code:'pos123',appCode:22,},{id:2,name:'tailor',code:'tailor123',appCode:21,}]
const output = input.reduce((a, obj) => {
a[obj.code] = obj;
return a;
}, {});
console.log(output);
发布于 2018-06-04 06:13:29
可以使用Object.assign将数组映射到预期的键和值形状。尝试:
let array = [
{
id: 1,
name: 'pos',
code: 'pos123',
appCode: 22,
},
{
id: 2,
name: 'tailor',
code: 'tailor123',
appCode: 21,
}
];
let output = Object.assign(...array.map(x => ({ [x.code]: x })));
console.log(output);
发布于 2018-06-04 06:14:01
var yourArray = [
{
id: 1,
name: 'pos',
code: 'pos123',
appCode: 22,
},
{
id: 2,
name: 'tailor',
code: 'tailor123',
appCode: 21,
}
];
//this is what you required
var output = yourArray.reduce((obj, item) => {
obj[code] =item;
return obj;
}, {});https://stackoverflow.com/questions/50674289
复制相似问题