javascript - 在JS中将JSON更改为以下格式
问题描述
如何在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}]
准确地
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}
我的尝试。
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);
我能够以以下格式获取它。
{2018-04-01T22:50:30.912Z: -0.033455},
{2018-04-01T22:50:30.912Z: -0.033455},
{2018-04-01T22:50:30.912Z: -0.033455}
请检查可以进行哪些更改以在一行中获得结果。
解决方案
您可以reduce()
按如下方式使用(混入一些解构和传播):
data.reduce((a, {acquired, mean_ndvi}) => ({[acquired]: mean_ndvi, ...a}), {});
完整片段:
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);
推荐阅读
- java - 如何在java中获取格式化的ldap objectSid?
- web-scraping - 在 Google 表格中使用 ImportXML
- javascript - MySQL 流和管道数据
- snowflake-cloud-data-platform - 无法解析带双引号的 JSON 对象
- r - 根据两个变量的值有条件地更改变量
- python - 如何在 Pandas DataFrame 中平滑地估算值?
- c# - Windows 会话在运行 Selenium 测试时终止
- reactjs - 如何使我的旧前端和新前端在同一个应用程序域中同时可用?
- python - 熊猫如何过滤串联的多个子字符串
- .net - 实体框架不更新记录