首页 > 解决方案 > 将带有数组的对象转换为带有数组的数组 - *ngfor 用法

问题描述

我有一个创建包含数据的数组的表单,然后我将该数组放在我的 firebase Datatime 中的一个对象中。

当我从该对象获取数据时,对象中的数据具有 2 个数组。

问题是使用 *ngfor 我需要对象是一个包含数组的数组。可能吗?

我怎样才能做到?

物体:

{adeus: Array(1), olaaaaa: Array(2)}

我如何从firebase调用它:

listSearch(){
    this.af.object("/list").query.once('value').then(data => {
      console.log(data.val() as string);
      this.teamsList = data.val() as string;
    });
  }

我收到此错误:

core.js:4197 错误错误:找不到“对象”类型的不同支持对象“[对象对象]”。NgFor 仅支持绑定到 Iterables,例如 Arrays

所以我需要一种方法将该对象转换为具有两个数组的数组。

有什么帮助吗?

标签: arraysangularfirebasefirebase-realtime-databasengfor

解决方案


我不明白你想要的解决方案。但是如果你想迭代到一个对象的属性,你可以使用 Object.keys 如下

let object = { array1 : ['a','b'], array2 : ['c','d'] }
let arrayOfArrays = Object.keys(object).map(k => object[k])

结果将是

arrayOfArrays = [ ['a', 'b'], ['c', 'd'] ]

希望这可以帮到你


推荐阅读