web-dev-qa-db-ja.com

vue.js 2でオブジェクトオブザーバーをループするにはどうすればよいですか?

I console.log(this.list)の場合、次のような結果になります。

enter image description here

this.list.forEach(function (user) {
    selected.Push(user.id);
});

エラーがあります:

Uncaught TypeError:this.list.forEachは関数ではありません

このエラーを解決するにはどうすればよいですか?

8
Success Man

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]) => {
  // ...
})
9
Decade Moon

ここで、Vueのオブザーバー配列をループします。

let keys = Object.keys(myObserverArray);

keys.forEach(key => {
   let item = myObserverArray[key];
   //...work with item
})
0
Abz