イム。 drivers
は空でもかまいませんが、常に存在します。私は右の場所で、このオブジェクトを配置する必要が再帰ループ
{
"name": "KIA",
"drivers":[]
}
:
は今、私は以下の目的を持って言うことができます。私の助けに私は次のものを手に入れました。
McLaren/BMW/Subaru/saab
したがって、新しいオブジェクトはLexusとHondaと同じ配列にプッシュされます。
私はそれを行う方法を見つけようと狂ってしまいました。私は次の行に考えています
私は配列へのパスを変換します。
var pathArr = ["McLaren","BMW","Subaru","saab"]
そして、再帰関数を使用してみてください:
myFunction(newObject){
for (var i = 0; i < pathArr.length; i++) {
recursiveFunc(data.drivers, pathArr[i])
}
var recursiveFunc(driversArr, name) {
for (var ix = 0; ix < driversArr.length; ix++) {
if (driversArr[ix].name === name) {
recursiveFunc(driversArr[ix].drivers, "HERE I NEED pathArr[1]")
}
}
}
}
を、私は非常に近い午前のように私は感じますいくつか欠けている部分があります。 多分、再帰について間違ったやり方を考えたり、過度に複雑にすることは考えていますか? 感謝していただきありがとうございます!
EDIT:
McLaren/BMW/Subaru/saab
は、新しいオブジェクト(KIA
)が行くべき場所へのパスを示しています。したがってKIA
は、saab
という名前のオブジェクトのdrivers
-arrに入る必要があります。
recursiveFunc() はpath-nameがどの配列に存在するかをチェックし、パスの最後の部分(この場合はsaab)を見つけるためにこのオブジェクト配列を使用しようとします。新しいオブジェクトをこの配列にプッシュする必要があります。
なぜ 'KIA'オブジェクトがSaab''にプッシュされますでしょうか?その関係を作るために何も示されていません。また、あなたの特定の問題や質問が何であるか明確ではありません。私は 'recursiveFunc()'が何をしているのかわかりません – charlietfl
私はあなたが問題を理解しているかどうか分かりませんが、実際よりも複雑にしていると思います。 JavaScriptのJSONの基本について読むことをお勧めします。役立つかもしれません。 http://www.w3schools.com/js/js_json.asp – guicl
再帰の終了条件を含む** else **ステートメントが必要です。 –