在Angular2/Typescript中将一个对象转换为数组

5

我是一名新手,刚接触Angular和TypeScript,现在需要翻译以下这个函数:

 onSetValues(user){ //user is an object
    console.log(user);  
 }

上面的console.log返回一个类似于对象的形式。
role:"administrator"
status:10
tries:2

我希望将此内容转换为数组,以便我能像循环一样遍历它们。
for(var i=0; i<array.length; i++){
 //do m stuff here
  }

我该如何转换这个

我在 这个链接 上查过,但它并没有提供关于Angular2/Typescript的帮助

我也尝试了

console.log(user| {}) //also fails

1
你为什么想要这样做?如果这是唯一的原因,你可以直接循环遍历对象的属性。 - malifa
3个回答

8
如果你真的想将对象值转换为数组...你需要这样做。
  let user = {
    role:"administrator",
    status:10,
    tries:2,
  };

  let arr = [];
  for(let key in user){
   if(user.hasOwnProperty(key)){
     arr.push(user[key]);
   }
  }
  console.log(arr);

console.log的结果

0: "管理员" 1: 10 2: 2


3
您可以使用属性创建一个接口。
interface user{
  role: string;
  status: string;
  tries: number;
}

在appcomponent内创建一个数组:
 users: user[] = [];

然后您可以将用户对象推送并制作为一个数组,

this.users.push(user);

抱歉,应该是this.users。 - Sajeetharan
现在创建了一个数组,但它是这个对象的数组,但我希望值被推送到一个数组中。我的意思是,它创建了一个形式为((array(0->用户对象)))的数组,而我想要的是一个形式为(array(role:"",status:10,...))的数组。 - Geoff
所以push将对象推入数组,但我正在寻找一种方法来推送对象属性(状态、角色、尝试次数)并将它们变成一个数组。 - Geoff

0

将响应 数据 放入一个 方括号 中。

然后将其保存在 中。

this.servicename.get_or_post().subscribe(data=> this.objectList = [data]);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接