javascript - 将对象数组转换为嵌套对象数组

标签 javascript

实际上我有一个要转换的对象数组。

[  
   { "val1":"2.0" },
   { "val2":"2.0" },
   { "val3":"2.0" },
   { "val1":"4.0" },
   { "val2":"2.0" },
   { "val3":"4.7" },
   { "val1":"4.0" },
   { "val2":"4.0" },
   { "val3":"4.0" }
]

我应该将每三个项目放入一个带有父项目的单独数组中。

我会将其转换为这种格式

[  
   [  
      "20190201",
      [  
         { "val1":"2.0" },
         { "val2":"2.0" },
         { "val3":"2.0" }
      ]
   ],
   [  
      "20190202",
      [  
         { "val2":"2.0" },
         { "val3":"2.0" },
         { "val1":"4.0" }
      ]
   ]
]

其实这就是我的制作方法

const returnData= fileDateName.map((_fileDate: string, _index: number) => {
        return [_fileDate, [
            filteredData[_index],
            filteredData[_index + 1],
            filteredData[_index + 2],
        ]];
    });

我的实际问题是我的输出不采用接下来的三个值,但每次它移动一项然后采用下一个值。我认为这是因为 _index 值没有按应有的方式增加。

Index =0 
filteredData[0],
filteredData[1],
filteredData[2],
index=1
filteredData[1],
filteredData[2],
filteredData[3],
...

但迭代应该使

Index =0 
filteredData[0],
filteredData[1],
filteredData[2],
index=3
filteredData[3],
filteredData[4],
filteredData[5],
...

编辑

FileDateName= ["20190201","20190202","20190203"]

如何在每次迭代时设置索引值?

最佳答案

您可以使用 Array#map 和 Array#slice 执行类似的操作。获取日期索引并将其乘以 3 即可找到应获取数据的起始位置。

const dates = [20190201, 20190202, 20190203]
const data=[{"val1":"2.0"},{"val2":"2.0"},{"val3":"2.0"},{"val1":"4.0"},{"val2":"2.0"},{"val3":"4.7"},{"val1":"4.0"},{"val2":"4.0"},{"val3":"4.0"}]

const res = dates.map((date, index)=>{
  const start = index * 3;
  const end = start + 3;
  return [
    date,
    data.slice(start, end)
  ]
});

console.log(res);

关于javascript - 将对象数组转换为嵌套对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54672068/

相关文章:

javascript - Angularjs 表达式未显示在 ngDialog 模板中

javascript - 在 `react-tooltip` 中多行显示文本

javascript - 清除输入字段

javascript - 邀请 friend 后Facebook连接重定向

javascript - Wordpress Envira Gallery 不会以禁止状态加载

javascript - Nashorn Javascript 是否编译 "eval"语句?

javascript - 如何在AngularJS中创建向上/向下投票功能

javascript - Chart.js - 当浏览器语言不是英语时,x 轴和工具提示标签在 Chrome 中显示 "undefined"

javascript - 如何阅读 Javascript 闭包语法?

javascript - RSS 提要响应不是原始 XML 格式