我有对象,那里是另一个数组作为值的属性的JavaScript数组,如下所示:拆分数组仍然是一个项目的阵列,而不是字符串
var data = [
{
id: 1,
parent: [1,2,3,4]
},
{
id: 2,
parent: [5,6,7,8]
}
]
我想将其拆分,因此每个拥有多个父项的对象都会获取其自身的副本,每个副本都有一个不同的父项。到目前为止,我已经做到了这一点:
var updateddata = JSON.parse(JSON.stringify(data));
for (var i = 0; i < updateddata[i].parent.length; i++) {
while (updateddata[i].parent.length > 1) {
updateddata.push({
id: updateddata[i].id,
parent: updateddata[i].parent[0]
})
updateddata[i].parent.shift()
}
}
和它的作品完美,除了一个事实,即在做console.log(JSON.stringify(updateddata))
时,我可以看到,前两个条目有一个父一个单一入口的数组,不像别人,这已经是阵列外:
这是console.log
为updateddata
:
[
{"id":1,"parent":[4]},
{"id":2,"parent":[8]},
{"id":1,"parent":1},
{"id":1,"parent":2},
{"id":1,"parent":3},
{"id":2,"parent":5},
{"id":2,"parent":6},
{"id":2,"parent":7}
]
我也曾尝试使用中的值.toString()
,但它并没有任何区别。
我该如何解决?
你应该这样做你的while循环直到0,因为你没有检查长度是否等于0你没有阅读最后一篇。 – AxelH