JavaScript:在嵌套的对象数组中添加数字

JavaScript:在嵌套的对象数组中添加数字,javascript,arrays,ecmascript-6,javascript-objects,Javascript,Arrays,Ecmascript 6,Javascript Objects,我试图得到的平均价格,乘数价格和数量的嵌套数组的对象,但我不知道如何得到正确的结果可以有人帮助。提前谢谢 数组类型: [ CreatAsset_kcnuvkr7: (3) [{…}, {…}, {…}] CreatAsset_kcop95ya: (2) [{…}, {…}] CreatAsset_kcoprqc4: (3) [{…}, {…}, {…}] CreatAsset_kcqjmhyh: (5) [{…}, {…}, {…}, {…}, {…}] ] 对象数据: [ { 最新价格:{s

我试图得到的平均价格,乘数价格和数量的嵌套数组的对象,但我不知道如何得到正确的结果可以有人帮助。提前谢谢

数组类型:

[
CreatAsset_kcnuvkr7: (3) [{…}, {…}, {…}]
CreatAsset_kcop95ya: (2) [{…}, {…}]
CreatAsset_kcoprqc4: (3) [{…}, {…}, {…}]
CreatAsset_kcqjmhyh: (5) [{…}, {…}, {…}, {…}, {…}]
]
对象数据:

[
{
最新价格:{stringValue:207.88},
purchaseDate:{stringValue:“1594829893159”},
采购数量:{stringValue:“50”},
水印:{stringValue:“CreatAsset_kcnuvkr7”}
},
{
最新价格:{stringValue:9.88},
purchaseDate:{stringValue:“1593868712336”},
采购数量:{stringValue:“30.00”},
水印:{stringValue:“CreatAsset_kcnuvkr7”}
},
{
最新价格:{stringValue:98.8},
购买日期:{stringValue:“1594829859268”},
采购数量:{stringValue:“100”},
水印:{stringValue:“CreatAsset_kcnuvkr7”}
}
];
我想要的结果是:

(总价=最新价格*采购数量), (平均价格=(最新价格指数[0]+最新价格指数[1]+最新价格指数[2]/3)

{
平均价格:{
字符串值:105.52
}
总采购数量:{
字符串值:“180”
}
总价1:{
stringValue:“10394.00”
}
总价2:{
stringValue:“296.40”
}
总价3:{
stringValue:“9880.00”
}
水印:{
stringValue:“CreatAsset_kcnuvkr7”
}
}
我的代码:

(结果是上面的数组类型)
让最新价格=[];
for(让我输入结果){
if(结果hasOwnProperty(i)){
结果[i]。地图((分辨率)=>{
最晚的价格({
最新价格:res.latestPrice.stringValue,
水印:res.waterMark.stringValue,
});
});
}
}

也许你想要的是这样的东西:

const数据=[
{
最新价格:{stringValue:207.88},
purchaseDate:{stringValue:“1594829893159”},
采购数量:{stringValue:“50”},
水印:{stringValue:“CreatAsset_kcnuvkr7”}
},
{
最新价格:{stringValue:9.88},
purchaseDate:{stringValue:“1593868712336”},
采购数量:{stringValue:“30.00”},
水印:{stringValue:“CreatAsset_kcnuvkr7”}
},
{
最新价格:{stringValue:98.8},
购买日期:{stringValue:“1594829859268”},
采购数量:{stringValue:“100”},
水印:{stringValue:“CreatAsset_kcnuvkr7”}
}
];
常数平均=arr=>arr.reduce((p,c)=>p+c,0)/arr.length;
log(“平均价格”,Average(data.map(d=>d.latestPrice.stringValue));
const total=data.map(d=>
(d.latestPrice.stringValue*d.purchaseQty.stringValue).固定(2)
);
控制台日志(“总价:”,总计);
const totalPurchaseQty=数据
.map(d=>d.purchaseQty.stringValue)
.减少((a,b)=>数字(a)+数字(b),0);

console.log(“总购买数量:”,总购买数量);
也许您想要的是这样的东西:

const数据=[
{
最新价格:{stringValue:207.88},
purchaseDate:{stringValue:“1594829893159”},
采购数量:{stringValue:“50”},
水印:{stringValue:“CreatAsset_kcnuvkr7”}
},
{
最新价格:{stringValue:9.88},
purchaseDate:{stringValue:“1593868712336”},
采购数量:{stringValue:“30.00”},
水印:{stringValue:“CreatAsset_kcnuvkr7”}
},
{
最新价格:{stringValue:98.8},
购买日期:{stringValue:“1594829859268”},
采购数量:{stringValue:“100”},
水印:{stringValue:“CreatAsset_kcnuvkr7”}
}
];
常数平均=arr=>arr.reduce((p,c)=>p+c,0)/arr.length;
log(“平均价格”,Average(data.map(d=>d.latestPrice.stringValue));
const total=data.map(d=>
(d.latestPrice.stringValue*d.purchaseQty.stringValue).固定(2)
);
控制台日志(“总价:”,总计);
const totalPurchaseQty=数据
.map(d=>d.purchaseQty.stringValue)
.减少((a,b)=>数字(a)+数字(b),0);
console.log(“总购买数量:”,总购买数量);
Object.entries(data).forEach([watermark,array])=>{
数据[水印]=数组.reduce((结果,对象,i)=>{
const{latestPrice,purchaseQty}=Object.fromEntries(Object.entries(Object)
.map(([key,{stringValue}])=>([key,+stringValue]));
结果['totalPrice'+(i+1)]=最新价格*采购数量;
result.avgPrice+=最新价格;
result.totalPurchaseQty+=采购数量;
i==array.length-1&(result.avgPrice/=array.length);
返回结果;
},{avgPrice:0,totalPurchaseQty:0,watermark});
});
实例:

const数据={
CreatAsset_kcnuvkr7:[
{
最新价格:{stringValue:207.88},
purchaseDate:{stringValue:'1594829893159'},
采购数量:{stringValue:'50'},
水印:{stringValue:'CreatAsset_kcnuvkr7'}
}, {
最新价格:{stringValue:9.88},
purchaseDate:{stringValue:“1593868712336”},
采购数量:{stringValue:“30.00”},
水印:{stringValue:“CreatAsset_kcnuvkr7”}
}, {
最新价格:{stringValue:98.80},
购买日期:{stringValue:“1594829859268”},
采购数量:{stringValue:“100”},
水印:{stringValue:“CreatAsset_kcnuvkr7”}
}
]
}
Object.entries(data.forEach)([watermark,array])=>{
数据[水印]=数组.reduce((结果,对象,i)=>{
const{latestPrice,purchaseQty}=Object.fromEntries(Object.entries(Object)
.map(([key,{stringValue}])=>([key,+stringValue]));
结果['totalPrice'+(i+1)]=最新价格*采购数量;
result.avgPrice+=最新价格;
result.totalPurchaseQty+=采购数量;
i==array.length-1&(result.avgPrice/=array.length);
返回结果;
},{avgPrice:0,totalPurchaseQty:0,watermark});
});
console.log(数据);
Object.entries(数据).forEach([watermark,array])=>{
数据[水印]=数组.reduce((结果,对象,i)=>{
const{latestPrice,purchaseQty}=Object.fromEntries(Object.entries(Object)
.map(([key,{stringValue