【发布时间】:2015-05-19 06:29:11
【问题描述】:
我正在尝试设置嵌套子对象属性之一,但嵌套级别是动态的。
如何动态设置嵌套属性?
它只工作一个级别的属性,我无法设置下一个内部级别....
我的代码:
function deSerialize(qualifiedNameArray, currentIndex, resultJSON, valueToBeInitializedForFinalNode)
{
if (currentIndex == (qualifiedNameArray.length - 1)){
resultJSON [qualifiedNameArray[currentIndex++]] = valueToBeInitializedForFinalNode;
}
else
{
resultJSON [qualifiedNameArray[currentIndex++]] = {};
}
if (currentIndex < qualifiedNameArray.length)
deSerialize( qualifiedNameArray, currentIndex, resultJSON, valueToBeInitializedForFinalNode);
return resultJSON;
}
var results = {"columnname":"person.name.first", "varcharvalue":"david", "objecttype" : "user"};
var valueToBeInitializedForFinalNode = results["varcharvalue"];
var qualifiedNameArray = results["columnname"].split('.');
var resultJSON = {};
deSerialize(qualifiedNameArray, 0, resultJSON, valueToBeInitializedForFinalNode);
【问题讨论】:
-
那么,简而言之,如果你有一个路径,你想在一个对象中将该路径设置为那个值吗?我不确定你想用 currentIndex 做什么。你想序列化一个对象数组吗?
标签: javascript javascript-objects