【问题标题】:How can I loop object observer on vue.js 2?如何在 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
  • 由于它是被动的,您可能看不到初始数据。您是否将初始数据设置为空数组?

标签: vue.js vuejs2 vue-component vuex


【解决方案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
    })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-28
      • 1970-01-01
      • 2018-03-02
      • 1970-01-01
      • 2023-03-16
      • 2017-05-17
      • 2011-06-17
      • 1970-01-01
      相关资源
      最近更新 更多