1
有Flex中的任何工具用點分隔字符串,像這樣得到的對象嵌套的屬性:使用點對象嵌套財產分割的字符串
SomeUtil.getObjectProperty(object, "child.property");
有Flex中的任何工具用點分隔字符串,像這樣得到的對象嵌套的屬性:使用點對象嵌套財產分割的字符串
SomeUtil.getObjectProperty(object, "child.property");
你可以滾你自己,假定對象是一個動態對象:
public function getObjectProperty(object:Object, property:String):Object
{
var parts:Array = property.split(".");
if(parts && parts.length == 2 && object && object[parts[0]] && object[parts[0]][parts[1]])
{
return object[parts[0]][parts[1]];
}
return null;
}
這裏是另外一個,將與不同的字符串工作:
private function test(e:Event = null):void
{
var obj:Object = {
"child": {
"property":1
},
"anotherproperty": 2
};
var test1:Object = getObjectProperty(obj, "anotherproperty");
var test2:Object = getObjectProperty(obj, "child.property");
}
public function getObjectProperty(object:Object, property:String):Object
{
var parts:Array = property.split(".");
var returnProp:Object = null;
for (var i:int = 0; i < parts.length; i++)
{
if(object[parts[i]])
{
returnProp = object[parts[i]];
object = returnProp;
}
else
return null;
}
return returnProp;
}
我知道。並已經寫了一個。但我在想是flex sdk中存在的任何類似的函數。 –
不是我所知道的。 –
你說得對。這工作。但是我建議在修改循環中的對象之前用ObjectUtil.copy()創建對象副本,以保留對象實例。 –