简体   繁体   English

在 JS 中将 JSON 更改为以下格式

[英]Change JSON to following format in JS

How do I change JSON of following format in javascript如何在javascript中更改以下格式的JSON

data = [{acquired: "2018-03-09T22:49:52.935Z", mean_ndvi: -0.0483685}
{acquired: "2018-02-13T22:49:16.568Z", mean_ndvi: 0.00595065}
{acquired: "2018-04-01T22:50:30.912Z", mean_ndvi: -0.033455}]

to exactly准确地

data = {"2018-03-09T22:49:52.935Z":-0.0483685, "2018-02-13T22:49:16.568Z": 0.00595065, "2018-04-01T22:50:30.912Z": -0.033455}

My attempt.我的尝试。

var json =data; var obj2 ={}; var obj3 =[]; 
for(var i = 0; i < json.length; i++) 
{ var obj = json[i]; 
obj2 = {[obj.acquired]:obj.mean_ndvi};
obj3.push(obj2); } 
console.log(obj3);

I'm able to get it in the following format.我能够以以下格式获取它。

 {2018-04-01T22:50:30.912Z: -0.033455}, 
 {2018-04-01T22:50:30.912Z: -0.033455}, 
 {2018-04-01T22:50:30.912Z: -0.033455}

Please check what changes can be made to get the result in one row.请检查可以进行哪些更改以在一行中获得结果。

You can use reduce() as follows (with some destructuring and spreading mixed in):您可以使用reduce()如下(混合了一些解构传播):

data.reduce((a, {acquired, mean_ndvi}) => ({[acquired]: mean_ndvi, ...a}), {});

Full snippet:完整片段:

 const data = [ {acquired: "2018-03-09T22:49:52.935Z", mean_ndvi: -0.0483685}, {acquired: "2018-02-13T22:49:16.568Z", mean_ndvi: 0.00595065}, {acquired: "2018-04-01T22:50:30.912Z", mean_ndvi: -0.033455} ]; const result = data.reduce((a, {acquired, mean_ndvi}) => ({[acquired]: mean_ndvi, ...a}), {}); console.log(result);

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

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