Javascript 对象数组中嵌套对象的Lodash贴图值

Javascript 对象数组中嵌套对象的Lodash贴图值,javascript,lodash,Javascript,Lodash,我试图使用lodash的map函数从对象数组中的嵌套对象中提取一个值,并将其存储在一个新键中。但我总是被洛达斯卡住,我犯了一个错误。任何帮助都将不胜感激。嵌套的键将始终是一个由1个对象组成的数组 const _ = require('lodash'); var all_data = [{id: 'A', nested: [{id: '123'}]}, {id: 'B', nested: [{id: '456'}]}]; _.map(all_data, (data) => ({ da

我试图使用lodash的map函数从对象数组中的嵌套对象中提取一个值,并将其存储在一个新键中。但我总是被洛达斯卡住,我犯了一个错误。任何帮助都将不胜感激。嵌套的键
将始终是一个由1个对象组成的数组

const _ = require('lodash');

var all_data = [{id: 'A', nested: [{id: '123'}]}, {id: 'B', nested: [{id: '456'}]}];

_.map(all_data, (data) => ({
  data.nested_id = data.nested[0].id;

}));
console.log(all_data)

所需的输出:
[{id:'A',nested_id:'123',nested:[{id:'123'}]},{id:'B',nested_id:'456',nested:[{id:'456'}]}]

对于这个简单的转换,您不必使用lodash

const allData=[{id:'A',嵌套:[{id:'123'}]},{id:'B',嵌套:[{id:'456'}]}]
const transformedData=allData.map(项=>({
…项目,
嵌套的\u id:项。嵌套的[0]。id
}))
但是如果你真的想用的话,这里有lodash版本

const transformedData=\映射(所有数据,(项)=>({
…项目,
嵌套的\u id:项。嵌套的[0]。id,
}))

使用lodash有什么原因吗?直接的问题是,您应该从
.map
的回调返回
数据
,但这可以在纯JS中完成,并且不会发生突变:
所有的数据.map((obj)=>({…obj,nested_id:obj.nested[0].id}))
我认为您最好使用Vanilla JS。谢谢。这很有效。如果我想删除属性
nested
是否可以使用spread运算符?@user2242044如果您知道该对象只有代码段中共享的3个属性,则可以执行
allData.map(item=>({id:item.id,nested\id:item.nested[0].id}))
谢谢。这只是一个简单的例子。如果它的字段比3个字段多得多,而我不想把它们全部写出来呢?