原始对象:[ { 名称:“ZoneName”, 值:“框A”, } , { 名称:'空侧', 价值:{ JZCleanTipFlowResults:{ 泄漏空气流量:2.0519336991674058, 泄漏空气流量不确定度:0.05755421849942835, 泄漏空气流量_lbmhr:16285.188088630204, 泄漏空气流量不确定度:456.779511900225, }, 使用Dambient TemperatureForCombition:正确, SubStoichWarning:错误, }, } , { 名称:'FuelSide', 价值:{ 燃料:{ “标题0”:{ 清洁压力:{ 人力资源:10776333.422366736, HR_不确定性:14383.420657232984, 人力资源部:36.77037592294784, }, }, }, 清洁压力:{ 人力资源:10776333.422366736, HR_不确定性:14383.420657232984, }, }, }, ];
想要像这样的对象:
无齿形状:[ { 名称:“ZoneName”, 值:“框A”, } , { 名称:“空侧| JZCleanTipFlowResults |泄漏空气流速”, 价值:2.0519336991674058, } , { 名称:“空侧| JZCleanTipFlowResults |泄漏气流率|不确定性”, 数值:0.05755421849942835, } , { 名称:“空侧| JZCleanTipFlowResults |泄漏空气流量| lbmhr”, 数值:16285.188088630204, } , { 名称:“空侧| JZCleanTipFlowResults |泄漏空气流速_lbmhr _不确定性”, 价值:456.779511900225, } , { 名称:“空侧|燃烧时使用的空气温度”, 价值观:正确, } , { 名称:“空侧| JZCleanTipFlowResults | SubStoichWarning”, 值:false, } , { 名称:'FuelSide | Fuels |收割台0 | CleanTipResults | HR', 数值:10776333.422366736, } , { 名称:'FuelSide | Fuels | Header 0 | CleanTipResults | HR |不确定性', 数值:14383.420657232984, } , { 名称:'FuelSide | Fuels | Header 0 | CleanTipResults | HR | MMBTUhr', 价值:36.77037592294784, } , { 名称:'FuelSide | CleanTipResults | HR', 数值:10776333.422366736, } , { 名称:'FuelSide | CleanTipResults | HR | U不确定性', 数值:14383.420657232984, } ]
我将提供我的想法,因为这里已经有一个高质量的答案。但请注意,在将来,StackOverflow是为了在您陷入困境时帮助您,而不是为您编写代码。请展示你自己的努力,并解释你在哪里被卡住了
我从我以前的答案中窃取了帮助函数
path
获取一个节点名数组和一个对象,并返回对象中该路径的值,或者undefined
如果任何节点不存在。例如,path (['foo', 'bar', 'baz'])
应用于{foo: {bar: {baz: 42}, qux: 99}, corge: -1}
产生42
getPaths
是一个生成器函数,用于提供对象叶节点的路径。所以getPaths ({foo: {bar: {baz: 42}, qux: 99}, corge: -1})
产生["foo", "bar", "baz"]
,然后["foo", "qux"]
和["corge"]
自定义的
transform
函数迭代Name
/Value
对数组,如果Value
是字符串,则返回它们,否则使用getPaths
将值转换为Condensed|Path|Names
/Value pairs. These are joined into a single list with
flatMap
数组如果你只是想找一个复制/粘贴的答案,我不会费心提供太多的解释。但我不介意完成拼图和分享我的作品-
输出-