Vue遍历data对象无法获取ordering属性值的问题求助
问题解决:获取Vue data中对象的ordering属性值
你的问题出在for...in循环的用法上:循环里的item是this.$data的属性名称字符串(比如"Joke"、"Weather"),所以item[0]只会输出字符串的第一个字符,而不是对应子对象的属性。
要获取每个子对象的ordering属性,有两种常用方法:
方法1:修正原for...in循环
通过属性名称访问对应的子对象,再读取ordering:
for (var item in this.$data) { // 先通过item(属性名)拿到对应的子对象,再取ordering console.log(this.$data[item].ordering); }
方法2:用Object.values简化遍历
直接获取this.$data的所有子对象数组,再遍历:
Object.values(this.$data).forEach(obj => { console.log(obj.ordering); });
如果this.$data里还有其他非目标子对象(比如Vue内置属性),可以先过滤一下,只处理包含ordering属性的对象:
Object.values(this.$data) .filter(obj => typeof obj.ordering !== 'undefined') .forEach(obj => { console.log(obj.ordering); });
内容的提问来源于stack exchange,提问作者StuP
相关产品推荐
相关产品推荐

