使用点分隔字符串获取对象嵌套属性 [英] Get Object nested property using dot separated string

查看:76
本文介绍了使用点分隔字符串获取对象嵌套属性的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Flex中是否有任何实用程序可以使用点分隔的字符串来获取对象嵌套的属性,如下所示:

Is there in Flex any utility to get object nested property using dot separated string like this:

SomeUtil.getObjectProperty(object, "child.property");

推荐答案

假设对象是动态对象,您可以自己滚动:

You can roll your own, assuming object is a dynamic object :

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;
} 

这是另一种可以使用不同字符串的方法:

Here is another one that will work with different strings :

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;
}

这篇关于使用点分隔字符串获取对象嵌套属性的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆