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

动态链式属性?我自己起的名字,样子就是

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

  这样输出肯定是不行的,那应该怎么访问呢?
  我们知道如果prop只有一个属性值就可以了,比如var prop="list";data[list]是可以的,那么我们利用这个可以换种思路

  

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,然后再循环,这样就可以输出了。

 

posted @ 2017-12-29 14:17  fantasy-zxf  阅读(539)  评论(0编辑  收藏  举报