如何在vue.js 2上循环对象观察器?

Suc*_*Man 5 vue.js vue-component vuex vuejs2

如果我console.log(this.list),结果如下:

在此处输入图片说明

this.list.forEach(function (user) {
    selected.push(user.id);
});
Run Code Online (Sandbox Code Playgroud)

存在错误:

未捕获的TypeError:this.list.forEach不是函数

我该如何解决这个错误?

Dec*_*oon 8

this.list不是数组?

如果this.list是类似数组的(length该对象上必须有一个属性),则应该能够执行以下操作:

Array.prototype.forEach.call(this.list, user => {
  // ...
})
Run Code Online (Sandbox Code Playgroud)

要么

Array.from(this.list).forEach(user => {
  // ...
})
Run Code Online (Sandbox Code Playgroud)

要么

[...this.list].forEach(user => {
  // ...
})
Run Code Online (Sandbox Code Playgroud)

否则,如果this.list只是一个普通对象,则可以执行以下操作:

Object.keys(this.list).forEach(key => {
  const user = this.list[key]
  // ...
})
Run Code Online (Sandbox Code Playgroud)

要么

Object.entries(this.list).forEach(([key, user]) => {
  // ...
})
Run Code Online (Sandbox Code Playgroud)