經過屬性動態深層取對象的值

先來看一下數據格式javascript

entity: {
        id: '1',
        description: '描述',
        attributes: {
          host: 'www.baidu.com',
          port: '8080'
        }
    },
複製代碼

咱們如今須要動態取 entiry['id'] 或者 entiry['attributes']['host']java

規則

若是是一級的話:須要傳入字符串 "id"數組

若是是二級的話:須要傳入字符串 "attributes.host" 以此類spa

封裝方法

/** * @ filed 須要傳入的字符串 * @ obj 須要傳入查找的對象 */
    function (filed, obj) {
        // 須要把字符串截取成數組
        let key = filed.split('.')
        // 聲明臨時變臉
        var tmp = obj
        // 循環 key 知道多少層級
        for (let value of key) {
            // 好比 filed = 'id' 一次循環 tmp = 1
            // 好比 filed = 'attributes.host' 這時候key = ['attributes', 'host'] 循環兩次
            // 當循環第一次的時候 tmp = attributes {...}
            // 當循環第二次的時候 tmp = 'www.baidu.com'
            tmp = tmp[value]
        }
        return tmp
    }
複製代碼
相關文章
相關標籤/搜索