如何在 vue.js 2 上循环对象观察者?
Posted
技术标签:
【中文标题】如何在 vue.js 2 上循环对象观察者?【英文标题】:How can I loop object observer on vue.js 2? 【发布时间】:2018-05-03 10:30:12 【问题描述】:如果我console.log(this.list)
,结果是这样的:
this.list.forEach(function (user)
selected.push(user.id);
);
存在错误:
未捕获的类型错误:this.list.forEach 不是函数
我该如何解决这个错误?
【问题讨论】:
试试Array.from(this.list).forEach
?
您是否正在检查并进入同一块 console.log(this.list)
和 this.list.forEach
?
由于它是被动的,您可能看不到初始数据。您是否将初始数据设置为空数组?
【参考方案1】:
this.list
不是数组吗?
如果this.list
类似于数组(该对象上必须有length
属性),您应该可以这样做:
Array.prototype.forEach.call(this.list, user =>
// ...
)
或
Array.from(this.list).forEach(user =>
// ...
)
或
[...this.list].forEach(user =>
// ...
)
否则如果this.list
只是一个普通对象,你可以这样做:
Object.keys(this.list).forEach(key =>
const user = this.list[key]
// ...
)
或
Object.entries(this.list).forEach(([key, user]) =>
// ...
)
【讨论】:
【参考方案2】:这是一种在 Vue 中遍历观察者数组的方法:
let keys = Object.keys(myObserverArray);
keys.forEach(key =>
let item = myObserverArray[key];
//...work with item
)
【讨论】:
以上是关于如何在 vue.js 2 上循环对象观察者?的主要内容,如果未能解决你的问题,请参考以下文章