迭代一个对象,该对象是可观察的结果

时间:2018-11-17 22:23:25

标签: javascript validation object observable

我正在尝试迭代并观察到的对象。

问题是我收到消息“ {E}”不存在属性“ forEach”。

 userValidator(): AsyncValidatorFn {
return (control: AbstractControl): Observable<{ [key: string]: any } | null> => {

  return  this.un.unidades.pipe(
    map(res => {
      res.forEach(element => {
        // Here it fails!! It says Property 'forEach' does not exist on type '{}'.
      });
      console.log(res) // Array of objects
      console.log(typeof(res)) // Output: object
              })
  )
};

如果我尝试对每个方法使用可观察的方法,那么它会起作用。 但是当我使用pipe(map)时,不会。

如何遍历对象?

1 个答案:

答案 0 :(得分:0)

我不是100%肯定,但是看着可观察对象的界面,似乎它是一个对象,其属性是对象数组。错误也指出了这一点。如果我们可以看到控制台日志的结果。

尝试记录res.length以确保它是一个数组,尽管我想它会说对象上不存在length。

如果是对象,则必须迭代键或使用Object.values(res).forEach然后迭代数组。