Vue笨蛋学原理:如何获取data里的对象类型里的数据

在上一篇我们只考虑了单属性,比如:( {{ name }} ),而Vue中大量的使用层级,比如:( {{ child.name. firstName}} )

直接上代码

  • 如何访问name.firstName呢?
let data = {
	name:{
		firstName:'刘',
		lastName:'亦菲'
	}
}
  • 我们是使用xxx.yyy.zzz来访问对象里的数据,也就是点运算符
  • 也可以说一个字符串路径来访问对象成员
function getValueByData(obj,path) {
	// 分隔为数据[xxx,yyy,zzz]
	let paths = path.split('.');
	let res = null;
	// 先获取obj.xxx,在取得结果中的yyy,在取得结果中的zzz
	res = obj[paths[0]]
	res = res[paths[1]]
	res = res[parhs[2]]
}

发现了规律,我们就可以循环来处理

let res = obj;
let prop;
while(prop = paths.shift()) { // 取出数组里第一个元素,且改变原数组
	res = res[prop] // 赋值
}
return res; // 把结果返回 

我们来试验一下

let res = getValueByData(data,'name.firstName')
console.log(res)

在这里插入图片描述

完整的代码

<body>
	
	<script type="text/javascript">
		let data = {
			name:{
				firstName:'刘',
				lastName:'亦菲'
			}
		}
		
		function getValueByData(obj,path) {
			// 分隔为数据[xxx,yyy,zzz]
			let paths = path.split('.');
			// let res = null;
			// 先获取obj.xxx,在取得结果中的yyy,在取得结果中的zzz
			// res = obj[paths[0]]
			// res = res[paths[1]]
			// res = res[parhs[2]]
			
			let res = obj;
			let prop;
			while(prop = paths.shift()) {
				res = res[prop]
			}
			return res;
		}
	
		let res = getValueByData(data,'name.firstName')
		console.log(res)
	</script>
</body>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值