遍历一个对象数组并获取密钥 Angular 2



嗨,我有一个数据结构如下:

list = [{id: "test", name: "name1"}, {id: "test1", name: "name2"}, ..]

我想在我的表中显示键(id 和名称(。由于我没有找到任何buitin管道,因此我创建了一个自定义管道。

@Pipe({name: 'keys'})
export class KeysPipe implements PipeTransform {
  transform(value, args:string[]) : any {
    let keys = [];
    for (let key in value) {
      keys.push({key: key, value: value[key]});
    }
    return keys;
  }
}

但是在我的 html 中,我只得到 0、1、2、...作为键。知道这里出了什么问题吗?

也许这会有所帮助:

@Pipe({name: 'keys'})
export class KeysPipe implements PipeTransform {
  transform(value, args:string[]) : any {
    let keys = [];
    Object.keys(value).forEach(function(key){
      keys.push({key: key, value: value['value']});
    }); 
    return keys;
  }
}

尝试这样的事情,我没有尝试过,但它应该可以工作。问题是您正在迭代数组,而不是对象。然后,你说"键"的地方是数组的索引,所以,这就是为什么你得到"0,1,2"。你的桌子是这样的吗?

ID    NAME
id1   name1
id2   name2
...   ...

最新更新