【发布时间】:2017-08-26 03:51:39
【问题描述】:
我有一个想要在 JS 中重新格式化的现有数组。这是现有的数组,其中每个项目都是一个对象:
[
{
end_time:"7.14",
pk:45065,
start_time:"4.51",
text:"Lorem Ipsum"
},
{
end_time:"9.00",
pk:45066,
start_time:"7.14",
text:"Lorem Ipsum Something"
},
{
end_time:"13.09",
pk:450667 ,
start_time:"9.00",
text:"Lorem Ipsum Something"
},
{
end_time:"17.01",
pk:45068,
start_time:"13.09",
text:"Lorem Ipsum"
},
{
end_time:"25.10",
pk:45069,
start_time:"17.01",
text:"Lorem Ipsum Something"
},
{
end_time:"28.06",
pk:450670 ,
start_time:"25.10",
text:"Lorem Ipsum Something"
},
]
我想创建一个新的对象数组,其中旧数组中的每三个对象成为新数组中的一个对象,如下所示:
[
segment: {
phrase: {
end_time:"7.14",
pk:45065,
start_time:"4.51",
text:"Lorem Ipsum"
},
phrase: {
end_time:"9.00",
pk:45066,
start_time:"7.14",
text:"Lorem Ipsum Something"
},
phrase: {
end_time:"13.09",
pk:450667 ,
start_time:"9.00",
text:"Lorem Ipsum Something"
}
},
segment {
phrase: {
end_time:"17.01",
pk:45068,
start_time:"13.09",
text:"Lorem Ipsum"
},
phrase: {
end_time:"25.10",
pk:45069,
start_time:"17.01",
text:"Lorem Ipsum Something"
},
phrase: {
end_time:"28.06",
pk:450670 ,
start_time:"25.10",
text:"Lorem Ipsum Something"
},
}
]
我最苦恼的是如何每三个项目拉出并推送到我猜的地图或循环内的新段对象。我不确定解决此问题的最有效方法。非常感谢任何帮助。
【问题讨论】:
-
在
arr.length % 3 !== 0的边缘情况下会发生什么 -
相位、相位、相位...相同的键?
-
你不能对许多对象属性使用相同的键,所以这不起作用。
-
你需要让pk独一无二
-
对于它的价值,你没有向我们展示任何 JSON。 JSON 是一种文本格式,需要将键括在双引号中。您向我们展示了一组对象。
标签: javascript arrays multidimensional-array