先来看一下数据格式
entity: {
id: '1',
description: '描述',
attributes: {
host: 'www.baidu.com',
port: '8080'
}
},
复制代码
我们现在需要动态取 entiry['id'] 或者 entiry['attributes']['host']
规则
如果是一级的话:需要传入字符串 "id"
如果是二级的话:需要传入字符串 "attributes.host" 以此类
封装方法
/**
* @ 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
}
复制代码