として残る:分割配列は、ここに見られるように、私は、値として別の配列を持つプロパティがあるオブジェクトの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))
をやったときに、私は他の人とは違って、最初の2つのエントリが親として1つのエントリを持つ配列を持っていることを見ることができるという事実を除いて、完璧に動作しますが、私は今のところこれを行ってきましたアレイの外側すでにである:
これは、updateddata
ためconsole.log
です:
[
{"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