MongoDB 風のセレクター「top.middle.bottom」に基づいて、プロパティのツリーを持つオブジェクトを再帰的に構築しようとしています。underscorejs ヘルパーもいくつかあります。
function setNestedPropertyValue(obj, fields, val) {
if (fields.indexOf(".") === -1) {
// On last property, set the value
obj[fields] = val;
return obj; // Recurse back up
} else {
var oneLevelLess = _.first(fields.split("."));
var remainingLevels = _.rest(fields.split(".")).join(".");
// There are more property levels remaining, set a sub with a recursive call
obj[oneLevelLess] = setNestedPropertyValue( {}, remainingLevels, val);
}
}
setNestedPropertyValue({}, "grandpaprop.papaprop.babyprop", 1);
希望:
{
grandpaprop: {
papaprop: {
babyprop: 1
}
}
}
結果:
undefined
ヘルプとヒントをいただければ幸いです。