如何使用lodash将新键映射到数组键之外
这是我的数组
let data = [{
item : {
data1 : data1
data2 : data2
},
data3 : data3
}]
我想要出去:
let data = [{
data1 : data1
data2 : data2
data3 : data3
}
]
这是我尝试的。我想做这样的事情
let data = _.map(data, function(item, data) {
return { item.item, data3: item.data3 };
});
Mysyntax错误的地方。如何删除项目密钥
答案 0 :(得分:3)
您不需要lodash就能完成这项简单的工作。
只需destructure item
和map
的回调参数中的其余键,然后就可以使用spread syntax返回合并的对象。
let data = [{
item: {
data1: 'a',
data2: 'b',
},
data3: 'c'
}];
const result = data.map(({item, ...rest}) => ({...item, ...rest}));
console.log(result);
答案 1 :(得分:1)
您还可以使用Object.assign():
let data = [{item: {data1: 'data1', data2: 'data2'}, data3: 'data3'}];
data = [Object.assign(data[0].item, { data3: data[0].data3 })];
console.log(data);
答案 2 :(得分:0)
我怀疑map函数是否会削减您需要的是使用data3扩展项目。希望这行得通
let data = [{
item: {
data1: 'data1',
data2: 'data2'
},
data3: 'data3'
}]
data = [{...data[0].item , data3: data[0].data3}]
console.log(data)