【问题标题】:Convert an object to an array in angular2/typescript在 angular2/typescript 中将对象转换为数组
【发布时间】:2017-01-29 07:55:25
【问题描述】:

我是 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
  }

如何转换

我已经检查了this link,但它在 angular2/typescript 中没有提供帮助

我也试过了

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

【问题讨论】:

  • 为什么要这样做?如果这是唯一的原因,您可以直接遍历对象的属性。

标签: angular typescript


【解决方案1】:

如果你真的想将你的对象值转换为数组......你必须这样做。

  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:"administrator" 1:10 2:2

【讨论】:

    【解决方案2】:

    您可以使用属性创建接口,

    interface user{
      role: string;
      status: string;
      tries: number;
    }
    

    在 appcomponent 内部创建一个数组,

     users: user[] = [];
    

    然后你可以推送用户对象并做成一个数组,

    this.users.push(user);
    

    【讨论】:

    • 抱歉应该是this.users
    • 这现在创建了一个数组,但它是这个对象的一个​​数组,但我希望将值推送到一个数组,我的意思是它创建了一个形式为 ((array(0- >用户对象)))我正在寻找的是一个表单数组(数组(角色:“”,状态:10,...))
    • 所以推送将对象推送到数组,但我正在寻找一种方法来推送对象属性(状态、角色、尝试)并使它们成为数组
    【解决方案3】:

    只需将回复data 放入square bracket

    并将其保存在class

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

    【讨论】:

      猜你喜欢
      • 2022-09-27
      • 1970-01-01
      • 2018-01-20
      • 2021-11-20
      • 2021-06-20
      • 1970-01-01
      • 2019-05-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多