繁体   English   中英

循环并总结 JSON 值

[英]Loop through and sum JSON values

我正在尝试遍历下面的 .json,提取“total_price”字段并将其求和。 我试过重新创建这个问题和答案

然而,经过多次反复试验,我似乎无法获取 total__value 字段并将其求和。 任何有关我需要以不同方式做的事情或如何为这种情况更改上述解决方案的帮助将不胜感激。

JSON:

"sales_mtd": {
"orders": [
{
"created_at": "2021-06-25T16:30:47-04:00",
"fulfillment_status": null,
"name": "#1099",
"total_price": "75.71"
},
{
"created_at": "2021-06-25T16:29:49-04:00",
"fulfillment_status": null,
"name": "#1098",
"total_price": "47.46"
},
{
"created_at": "2021-06-25T16:29:27-04:00",
"fulfillment_status": null,
"name": "#1097",
"total_price": "40.68"
},
{
"created_at": "2021-06-25T16:26:42-04:00",
"fulfillment_status": null,
"name": "#1096",
"total_price": "29.69"
},
{
"created_at": "2021-06-25T16:23:41-04:00",
"fulfillment_status": null,
"name": "#1095",
"total_price": "29.69"
},
{
"created_at": "2021-06-25T11:47:40-04:00",
"fulfillment_status": null,
"name": "#1094",
"total_price": "29.69"
},
{
"created_at": "2021-06-25T11:46:14-04:00",
"fulfillment_status": null,
"name": "#1093",
"total_price": "43.45"
},
{
"created_at": "2021-06-25T11:44:22-04:00",
"fulfillment_status": null,
"name": "#1092",
"total_price": "43.45"
},
{
"created_at": "2021-06-25T00:41:59-04:00",
"fulfillment_status": null,
"name": "#1091",
"total_price": "29.69"
},
{
"created_at": "2021-06-25T00:39:34-04:00",
"fulfillment_status": null,
"name": "#1090",
"total_price": "67.95"
},
{
"created_at": "2021-06-25T00:36:18-04:00",
"fulfillment_status": null,
"name": "#1089",
"total_price": "90.55"
},
{
"created_at": "2021-06-25T00:22:08-04:00",
"fulfillment_status": null,
"name": "#1088",
"total_price": "43.45"
},
{
"created_at": "2021-06-25T00:14:16-04:00",
"fulfillment_status": null,
"name": "#1087",
"total_price": "62.30"
},
{
"created_at": "2021-06-25T00:11:14-04:00",
"fulfillment_status": null,
"name": "#1086",
"total_price": "43.45"
},
{
"created_at": "2021-06-25T00:03:49-04:00",
"fulfillment_status": null,
"name": "#1085",
"total_price": "29.69"
},
{
"created_at": "2021-06-24T23:55:39-04:00",
"fulfillment_status": null,
"name": "#1084",
"total_price": "66.82"
},
{
"created_at": "2021-06-24T23:52:07-04:00",
"fulfillment_status": null,
"name": "#1083",
"total_price": "65.69"
},
{
"created_at": "2021-06-21T19:57:06-04:00",
"fulfillment_status": "fulfilled",
"name": "#MA-3097",
"total_price": "91.90"
},
{
"created_at": "2021-06-14T10:19:35-04:00",
"fulfillment_status": null,
"name": "#1078",
"total_price": "48.74"
},
{
"created_at": "2021-06-12T00:06:22-04:00",
"fulfillment_status": null,
"name": "#1077",
"total_price": "42.59"
},
{
"created_at": "2021-06-11T14:13:16-04:00",
"fulfillment_status": null,
"name": "#1076",
"total_price": "52.29"
},
{
"created_at": "2021-06-10T23:06:49-04:00",
"fulfillment_status": null,
"name": "#1075",
"total_price": "17.90"
},
{
"created_at": "2021-06-08T21:32:53-04:00",
"fulfillment_status": null,
"name": "#1074",
"total_price": "55.52"
},
{
"created_at": "2021-06-02T15:20:33-04:00",
"fulfillment_status": null,
"name": "#1072",
"total_price": "62.93"
},
{
"created_at": "2021-06-01T17:26:33-04:00",
"fulfillment_status": null,
"name": "#1071",
"total_price": "48.60"
},
{
"created_at": "2021-06-01T16:19:55-04:00",
"fulfillment_status": null,
"name": "#1069",
"total_price": "70.07"
},
{
"created_at": "2021-05-26T11:41:55-04:00",
"fulfillment_status": null,
"name": "#1067",
"total_price": "62.16"
},
{
"created_at": "2021-05-25T18:58:44-04:00",
"fulfillment_status": null,
"name": "#1066",
"total_price": "71.20"
},
{
"created_at": "2021-05-13T16:53:28-04:00",
"fulfillment_status": null,
"name": "#1060",
"total_price": "42.59"
},
{
"created_at": "2021-05-13T09:46:59-04:00",
"fulfillment_status": null,
"name": "#1057",
"total_price": "36.16"
},
{
"created_at": "2021-05-12T22:52:58-04:00",
"fulfillment_status": null,
"name": "#1056",
"total_price": "85.87"
},
{
"created_at": "2021-05-10T18:29:43-04:00",
"fulfillment_status": null,
"name": "69420",
"total_price": "42.94"
},
{
"created_at": "2021-05-06T12:32:48-04:00",
"fulfillment_status": null,
"name": "#1054",
"total_price": "42.94"
},
{
"created_at": "2021-05-06T11:18:26-04:00",
"fulfillment_status": null,
"name": "#1053",
"total_price": "221.48"
},
{
"created_at": "2021-05-04T21:56:52-04:00",
"fulfillment_status": null,
"name": "#1052",
"total_price": "42.66"
},
{
"created_at": "2021-04-30T14:33:42-04:00",
"fulfillment_status": null,
"name": "#1050",
"total_price": "80.17"
},
{
"created_at": "2021-04-30T14:31:05-04:00",
"fulfillment_status": null,
"name": "#1049",
"total_price": "49.66"
},
{
"created_at": "2021-04-30T14:24:01-04:00",
"fulfillment_status": null,
"name": "#1048",
"total_price": "51.92"
},
{
"created_at": "2021-04-27T12:31:34-04:00",
"fulfillment_status": null,
"name": "#1047",
"total_price": "41.07"
},
{
"created_at": "2021-04-27T09:46:06-04:00",
"fulfillment_status": null,
"name": "#1046",
"total_price": "70.57"
},
{
"created_at": "2021-04-21T09:57:23-04:00",
"fulfillment_status": null,
"name": "#1044",
"total_price": "266.22"
},
{
"created_at": "2021-04-21T09:55:35-04:00",
"fulfillment_status": null,
"name": "#1043",
"total_price": "202.29"
},
{
"created_at": "2021-04-21T09:54:20-04:00",
"fulfillment_status": null,
"name": "#1042",
"total_price": "138.93"
},
{
"created_at": "2021-04-21T09:51:37-04:00",
"fulfillment_status": null,
"name": "#1041",
"total_price": "48.53"
},
{
"created_at": "2021-04-14T13:12:48-04:00",
"fulfillment_status": null,
"name": "#1040",
"total_price": "48.53"
},
{
"created_at": "2021-04-08T13:48:42-04:00",
"fulfillment_status": null,
"name": "#1038",
"total_price": "48.53"
},
{
"created_at": "2021-04-06T09:30:17-04:00",
"fulfillment_status": "partial",
"name": "#1037",
"total_price": "109.61"
},
{
"created_at": "2021-03-27T07:10:25-04:00",
"fulfillment_status": null,
"name": "#1035",
"total_price": "61.83"
},
{
"created_at": "2021-03-24T11:35:35-04:00",
"fulfillment_status": null,
"name": "#1034",
"total_price": "72.44"
},
{
"created_at": "2021-03-19T11:55:19-04:00",
"fulfillment_status": null,
"name": "#1033",
"total_price": "59.57"
}
]
}
}

这是我从上面提到的答案中尝试使用的代码:

var sum = item.jobTasks.reduce(function(sum, elem) {
    return sum + (elem.cost && elem.cost.amountString ? elem.cost.amountString : 0) ;
}, 0);
console.log('jobNumber' + item.jobNumber + ' ' + sum);
});```

只需获取订单json.sales_mtd.orders并遍历订单,每次将total_price添加到总和。

你也可以用reduce来做,只需返回当前订单和之前订单的总和作为新的总和。

 let json = { "sales_mtd": { "orders": [{ "created_at": "2021-06-25T16:30:47-04:00", "fulfillment_status": null, "name": "#1099", "total_price": "75.71" }, { "created_at": "2021-06-25T16:29:49-04:00", "fulfillment_status": null, "name": "#1098", "total_price": "47.46" }, { "created_at": "2021-06-25T16:29:27-04:00", "fulfillment_status": null, "name": "#1097", "total_price": "40.68" }, { "created_at": "2021-06-25T16:26:42-04:00", "fulfillment_status": null, "name": "#1096", "total_price": "29.69" }, { "created_at": "2021-06-25T16:23:41-04:00", "fulfillment_status": null, "name": "#1095", "total_price": "29.69" }, { "created_at": "2021-06-25T11:47:40-04:00", "fulfillment_status": null, "name": "#1094", "total_price": "29.69" }, { "created_at": "2021-06-25T11:46:14-04:00", "fulfillment_status": null, "name": "#1093", "total_price": "43.45" }, { "created_at": "2021-06-25T11:44:22-04:00", "fulfillment_status": null, "name": "#1092", "total_price": "43.45" }, { "created_at": "2021-06-25T00:41:59-04:00", "fulfillment_status": null, "name": "#1091", "total_price": "29.69" }, { "created_at": "2021-06-25T00:39:34-04:00", "fulfillment_status": null, "name": "#1090", "total_price": "67.95" }, { "created_at": "2021-06-25T00:36:18-04:00", "fulfillment_status": null, "name": "#1089", "total_price": "90.55" }, { "created_at": "2021-06-25T00:22:08-04:00", "fulfillment_status": null, "name": "#1088", "total_price": "43.45" }, { "created_at": "2021-06-25T00:14:16-04:00", "fulfillment_status": null, "name": "#1087", "total_price": "62.30" }, { "created_at": "2021-06-25T00:11:14-04:00", "fulfillment_status": null, "name": "#1086", "total_price": "43.45" }, { "created_at": "2021-06-25T00:03:49-04:00", "fulfillment_status": null, "name": "#1085", "total_price": "29.69" }, { "created_at": "2021-06-24T23:55:39-04:00", "fulfillment_status": null, "name": "#1084", "total_price": "66.82" }, { "created_at": "2021-06-24T23:52:07-04:00", "fulfillment_status": null, "name": "#1083", "total_price": "65.69" }, { "created_at": "2021-06-21T19:57:06-04:00", "fulfillment_status": "fulfilled", "name": "#MA-3097", "total_price": "91.90" }, { "created_at": "2021-06-14T10:19:35-04:00", "fulfillment_status": null, "name": "#1078", "total_price": "48.74" }, { "created_at": "2021-06-12T00:06:22-04:00", "fulfillment_status": null, "name": "#1077", "total_price": "42.59" }, { "created_at": "2021-06-11T14:13:16-04:00", "fulfillment_status": null, "name": "#1076", "total_price": "52.29" }, { "created_at": "2021-06-10T23:06:49-04:00", "fulfillment_status": null, "name": "#1075", "total_price": "17.90" }, { "created_at": "2021-06-08T21:32:53-04:00", "fulfillment_status": null, "name": "#1074", "total_price": "55.52" }, { "created_at": "2021-06-02T15:20:33-04:00", "fulfillment_status": null, "name": "#1072", "total_price": "62.93" }, { "created_at": "2021-06-01T17:26:33-04:00", "fulfillment_status": null, "name": "#1071", "total_price": "48.60" }, { "created_at": "2021-06-01T16:19:55-04:00", "fulfillment_status": null, "name": "#1069", "total_price": "70.07" }, { "created_at": "2021-05-26T11:41:55-04:00", "fulfillment_status": null, "name": "#1067", "total_price": "62.16" }, { "created_at": "2021-05-25T18:58:44-04:00", "fulfillment_status": null, "name": "#1066", "total_price": "71.20" }, { "created_at": "2021-05-13T16:53:28-04:00", "fulfillment_status": null, "name": "#1060", "total_price": "42.59" }, { "created_at": "2021-05-13T09:46:59-04:00", "fulfillment_status": null, "name": "#1057", "total_price": "36.16" }, { "created_at": "2021-05-12T22:52:58-04:00", "fulfillment_status": null, "name": "#1056", "total_price": "85.87" }, { "created_at": "2021-05-10T18:29:43-04:00", "fulfillment_status": null, "name": "69420", "total_price": "42.94" }, { "created_at": "2021-05-06T12:32:48-04:00", "fulfillment_status": null, "name": "#1054", "total_price": "42.94" }, { "created_at": "2021-05-06T11:18:26-04:00", "fulfillment_status": null, "name": "#1053", "total_price": "221.48" }, { "created_at": "2021-05-04T21:56:52-04:00", "fulfillment_status": null, "name": "#1052", "total_price": "42.66" }, { "created_at": "2021-04-30T14:33:42-04:00", "fulfillment_status": null, "name": "#1050", "total_price": "80.17" }, { "created_at": "2021-04-30T14:31:05-04:00", "fulfillment_status": null, "name": "#1049", "total_price": "49.66" }, { "created_at": "2021-04-30T14:24:01-04:00", "fulfillment_status": null, "name": "#1048", "total_price": "51.92" }, { "created_at": "2021-04-27T12:31:34-04:00", "fulfillment_status": null, "name": "#1047", "total_price": "41.07" }, { "created_at": "2021-04-27T09:46:06-04:00", "fulfillment_status": null, "name": "#1046", "total_price": "70.57" }, { "created_at": "2021-04-21T09:57:23-04:00", "fulfillment_status": null, "name": "#1044", "total_price": "266.22" }, { "created_at": "2021-04-21T09:55:35-04:00", "fulfillment_status": null, "name": "#1043", "total_price": "202.29" }, { "created_at": "2021-04-21T09:54:20-04:00", "fulfillment_status": null, "name": "#1042", "total_price": "138.93" }, { "created_at": "2021-04-21T09:51:37-04:00", "fulfillment_status": null, "name": "#1041", "total_price": "48.53" }, { "created_at": "2021-04-14T13:12:48-04:00", "fulfillment_status": null, "name": "#1040", "total_price": "48.53" }, { "created_at": "2021-04-08T13:48:42-04:00", "fulfillment_status": null, "name": "#1038", "total_price": "48.53" }, { "created_at": "2021-04-06T09:30:17-04:00", "fulfillment_status": "partial", "name": "#1037", "total_price": "109.61" }, { "created_at": "2021-03-27T07:10:25-04:00", "fulfillment_status": null, "name": "#1035", "total_price": "61.83" }, { "created_at": "2021-03-24T11:35:35-04:00", "fulfillment_status": null, "name": "#1034", "total_price": "72.44" }, { "created_at": "2021-03-19T11:55:19-04:00", "fulfillment_status": null, "name": "#1033", "total_price": "59.57" } ] } }; let sumFor = 0; for (let order of json.sales_mtd.orders) { sumFor += Number(order.total_price); } console.log(sumFor); let sumReduce = json.sales_mtd.orders.reduce((acc, curr) => acc + Number(curr.total_price), 0); console.log(sumReduce);

这是reduce的教科书示例,它采用 2 个参数,累加值 (b) 和循环中的项目 (a)。 您只需要在每次迭代时将价格转换为一个数字,我使用速记+

let sum = sales.sales_mtd.orders.reduce((b, a) => b + +a.total_price, 0).toFixed(2)
console.log(sum)

 const sales = { "sales_mtd": { "orders": [{ "created_at": "2021-06-25T16:30:47-04:00", "fulfillment_status": null, "name": "#1099", "total_price": "75.71" }, { "created_at": "2021-06-25T16:29:49-04:00", "fulfillment_status": null, "name": "#1098", "total_price": "47.46" }, { "created_at": "2021-06-25T16:29:27-04:00", "fulfillment_status": null, "name": "#1097", "total_price": "40.68" }, { "created_at": "2021-06-25T16:26:42-04:00", "fulfillment_status": null, "name": "#1096", "total_price": "29.69" }, { "created_at": "2021-06-25T16:23:41-04:00", "fulfillment_status": null, "name": "#1095", "total_price": "29.69" }, { "created_at": "2021-06-25T11:47:40-04:00", "fulfillment_status": null, "name": "#1094", "total_price": "29.69" }, { "created_at": "2021-06-25T11:46:14-04:00", "fulfillment_status": null, "name": "#1093", "total_price": "43.45" }, { "created_at": "2021-06-25T11:44:22-04:00", "fulfillment_status": null, "name": "#1092", "total_price": "43.45" }, { "created_at": "2021-06-25T00:41:59-04:00", "fulfillment_status": null, "name": "#1091", "total_price": "29.69" }, { "created_at": "2021-06-25T00:39:34-04:00", "fulfillment_status": null, "name": "#1090", "total_price": "67.95" }, { "created_at": "2021-06-25T00:36:18-04:00", "fulfillment_status": null, "name": "#1089", "total_price": "90.55" }, { "created_at": "2021-06-25T00:22:08-04:00", "fulfillment_status": null, "name": "#1088", "total_price": "43.45" }, { "created_at": "2021-06-25T00:14:16-04:00", "fulfillment_status": null, "name": "#1087", "total_price": "62.30" }, { "created_at": "2021-06-25T00:11:14-04:00", "fulfillment_status": null, "name": "#1086", "total_price": "43.45" }, { "created_at": "2021-06-25T00:03:49-04:00", "fulfillment_status": null, "name": "#1085", "total_price": "29.69" }, { "created_at": "2021-06-24T23:55:39-04:00", "fulfillment_status": null, "name": "#1084", "total_price": "66.82" }, { "created_at": "2021-06-24T23:52:07-04:00", "fulfillment_status": null, "name": "#1083", "total_price": "65.69" }, { "created_at": "2021-06-21T19:57:06-04:00", "fulfillment_status": "fulfilled", "name": "#MA-3097", "total_price": "91.90" }, { "created_at": "2021-06-14T10:19:35-04:00", "fulfillment_status": null, "name": "#1078", "total_price": "48.74" }, { "created_at": "2021-06-12T00:06:22-04:00", "fulfillment_status": null, "name": "#1077", "total_price": "42.59" }, { "created_at": "2021-06-11T14:13:16-04:00", "fulfillment_status": null, "name": "#1076", "total_price": "52.29" }, { "created_at": "2021-06-10T23:06:49-04:00", "fulfillment_status": null, "name": "#1075", "total_price": "17.90" }, { "created_at": "2021-06-08T21:32:53-04:00", "fulfillment_status": null, "name": "#1074", "total_price": "55.52" }, { "created_at": "2021-06-02T15:20:33-04:00", "fulfillment_status": null, "name": "#1072", "total_price": "62.93" }, { "created_at": "2021-06-01T17:26:33-04:00", "fulfillment_status": null, "name": "#1071", "total_price": "48.60" }, { "created_at": "2021-06-01T16:19:55-04:00", "fulfillment_status": null, "name": "#1069", "total_price": "70.07" }, { "created_at": "2021-05-26T11:41:55-04:00", "fulfillment_status": null, "name": "#1067", "total_price": "62.16" }, { "created_at": "2021-05-25T18:58:44-04:00", "fulfillment_status": null, "name": "#1066", "total_price": "71.20" }, { "created_at": "2021-05-13T16:53:28-04:00", "fulfillment_status": null, "name": "#1060", "total_price": "42.59" }, { "created_at": "2021-05-13T09:46:59-04:00", "fulfillment_status": null, "name": "#1057", "total_price": "36.16" }, { "created_at": "2021-05-12T22:52:58-04:00", "fulfillment_status": null, "name": "#1056", "total_price": "85.87" }, { "created_at": "2021-05-10T18:29:43-04:00", "fulfillment_status": null, "name": "69420", "total_price": "42.94" }, { "created_at": "2021-05-06T12:32:48-04:00", "fulfillment_status": null, "name": "#1054", "total_price": "42.94" }, { "created_at": "2021-05-06T11:18:26-04:00", "fulfillment_status": null, "name": "#1053", "total_price": "221.48" }, { "created_at": "2021-05-04T21:56:52-04:00", "fulfillment_status": null, "name": "#1052", "total_price": "42.66" }, { "created_at": "2021-04-30T14:33:42-04:00", "fulfillment_status": null, "name": "#1050", "total_price": "80.17" }, { "created_at": "2021-04-30T14:31:05-04:00", "fulfillment_status": null, "name": "#1049", "total_price": "49.66" }, { "created_at": "2021-04-30T14:24:01-04:00", "fulfillment_status": null, "name": "#1048", "total_price": "51.92" }, { "created_at": "2021-04-27T12:31:34-04:00", "fulfillment_status": null, "name": "#1047", "total_price": "41.07" }, { "created_at": "2021-04-27T09:46:06-04:00", "fulfillment_status": null, "name": "#1046", "total_price": "70.57" }, { "created_at": "2021-04-21T09:57:23-04:00", "fulfillment_status": null, "name": "#1044", "total_price": "266.22" }, { "created_at": "2021-04-21T09:55:35-04:00", "fulfillment_status": null, "name": "#1043", "total_price": "202.29" }, { "created_at": "2021-04-21T09:54:20-04:00", "fulfillment_status": null, "name": "#1042", "total_price": "138.93" }, { "created_at": "2021-04-21T09:51:37-04:00", "fulfillment_status": null, "name": "#1041", "total_price": "48.53" }, { "created_at": "2021-04-14T13:12:48-04:00", "fulfillment_status": null, "name": "#1040", "total_price": "48.53" }, { "created_at": "2021-04-08T13:48:42-04:00", "fulfillment_status": null, "name": "#1038", "total_price": "48.53" }, { "created_at": "2021-04-06T09:30:17-04:00", "fulfillment_status": "partial", "name": "#1037", "total_price": "109.61" }, { "created_at": "2021-03-27T07:10:25-04:00", "fulfillment_status": null, "name": "#1035", "total_price": "61.83" }, { "created_at": "2021-03-24T11:35:35-04:00", "fulfillment_status": null, "name": "#1034", "total_price": "72.44" }, { "created_at": "2021-03-19T11:55:19-04:00", "fulfillment_status": null, "name": "#1033", "total_price": "59.57" } ] } } let sum = sales.sales_mtd.orders.reduce((b, a) => b + +a.total_price, 0).toFixed(2) console.log(sum)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM