私は以下のようなオブジェクトを持っており、ツリー内の各サブオブジェクトに1つのプロパティを追加する方法を探しています。つまり、0からnまでカウントアップするオブジェクトに数値を追加します。再帰的な関数を使ってオブジェクトをたどることができるのは分かっていますが、可変スコープがあるため、単純な増分変数を使用してツリーを通過するまでカウントアップすることはできません。ネストされたオブジェクトツリー内のJavascriptオブジェクトに連続番号を追加
現在のオブジェクト:
var tree = [
{
name: 'a',
children: []
},{
name: 'b',
children: [
{
name: 'c',
children: []
}
]
},
{
name: 'd',
children: [
{
name: 'e',
children: [
{
name: 'f',
children: []
},
{
name: 'g',
children: []
}
]
}
]
}
];
所期の目的:
var tree = [
{
name: 'a',
number: 0,
children: []
},{
name: 'b',
number: 1,
children: [
{
name: 'c',
number: 2,
children: []
}
]
},
{
name: 'd',
number: 3,
children: [
{
name: 'e',
number: 4,
children: [
{
name: 'f',
number: 5,
children: []
},
{
name: 'g',
number: 6,
children: []
}
]
}
]
}
];
あなたの関数がその作業を行うために特定の値を必要とする場合は、それをパラメータとして渡します。これはすべてのスコープの問題を取り除きます。 – CBroe
また、再帰レベルに関係なくインクリメントするのが問題になる場合は、再帰的に呼び出される関数のスコープ内にある変数を使用してください。 – CBroe