js怎么获取动态链式属性呢?

动态链式属性?我本身起的名字,样子就是数组

var data={
    list:{
        name:'zxf'
    }
}
var prop="list.name";
console.log(data[prop])

  这样输出确定是不行的,那应该怎么访问呢?
  咱们知道若是prop只有一个属性值就能够了,好比var prop="list";data[list]是能够的,那么咱们利用这个能够换种思路code

  

var data={
    list:{
        name:'zxf'
    }
}
var props="list.name";
var res=data;
var paths=props.split('.');
while(paths.length>0){
    res=res[paths.shift()]
}
console.log(res);

  这里,把属性值以.为分割,成为一个数组,而后在while循环里面咱们利用数组的shift先获取第一个属性,同时删除,这样就获得了对象list,而后再循环,这样就能够输出了。对象

相关文章
相关标签/搜索