javascript / angular 如何把object转成array

取出的api 格式是纯object格式

{"name":"james","city":"Taipei","country":"Taiwan"}

用ngFor跑表格跑不出来 因为不支援object格式

要怎么把他变成array格式?

想变成

[
    {"name":"james","city":"Taipei","country":"Taiwan"}
]

阅读 4.5k
4 个回答
let o = {"name":"james","city":"Taipei","country":"Taiwan"}
let arr = [o]

虽然直接在 Component 或者 Directive 中对数据进行处理即可,但是更正统的方法应该是实现一个 pipe,比如

import { PipeTransform, Pipe } from '@angular/core';

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

之后

*ngFor="let key of obj | keys"

同理还可以实现 [key, value] 的元组格式

[].push({"name":"james","city":"Taipei","country":"Taiwan"}) 不行咩?

你这个转成这样的数组有什么意义?

如果想对对象做遍历,可以用for ... in ...或者用es6里面的Object.keys()Object.values()

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏