これを行うには抽象的に十分に考えることができないようです...しかし、配列値をプロパティ名として使用する配列からJavascriptオブジェクトを作成したいのですが、それらは互いにネストされたオブジェクトでなければなりません。
したがって、次のような配列があるとします。
['First', 'Second', 'Third', 'Fourth']
私の予想される出力は次のようになります。
{
First: {
Second: {
Third: {
Fourth: {}
}
}
}
}
UPDATE コメントで述べたように、私が使用していた機能は次のとおりです。
function appendKey(obj, to, key) {
if (obj.hasOwnProperty(to)) {
appendKey(obj[to], to, key);
} else {
obj[key] = {};
}
return obj;
}
私の意図は、それを次のように呼ぶことでした:
var data = ['First', 'Second', 'Third', 'Fourth'];
data = appendKey(data, 'First', 'Second');
data = appendKey(data, 'Second', 'Third');
data = appendKey(data, 'Third', 'Fourth');
明らかに、それはループに入れられる可能性があるため、そのようにしたかったのです。私の出力は次のようになりました:
data = { 'First' : { 'Second' } } // it works this time!
data = { 'First' : { 'Second' },
'Third' : { } }
data = { 'First' : { 'Second' },
'Third' : { 'Fourth' { } } }