微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

对象到 Angular 中的数组

如何解决对象到 Angular 中的数组

我需要有关此代码的帮助。

我与 "@angular/cli": "~12.0.5" 合作。

createArray 方法接收一个对象,我想将该对象转换为数组,但在“userObj [key]”中出现错误。我通过 http 请求从 Firebase 获取对象 (userObj),但无法更改其结构。

这是错误信息。 -> 元素隐式具有 'any' 类型,因为类型 'string' 的表达式不能用于索引类型 '{}'。在类型 '{}'

上找不到带有类型为 'string' 的参数的索引签名

谢谢!

const userObj = {

   'SJKLDFAD903':{
      id: '',name: 'User 1'
   },'PLMKL-BAD89':{
      id: '',name: 'User 2'
   },'JHK34R-R903':{
      id: '',name: 'User 3'
   }
}

export class usermodel{
   id: string;
   name: string;
}

private createArray(userObj){ /*(userObj: object)*/
    const users: usermodel[] = [];

    if (userObj == null) { return []; }

    Object.keys(userObj).forEach(key => {
      
       const user: usermodel = userObj[key];
       user.id = key;

       users.push(user);
    });

    return users;
}

解决方法

哟兄弟。

改用Object.values

const userObj = {

   'SJKLDFAD903':{
      id: '',name: 'User 1'
   },'PLMKL-BAD89':{
      id: '',name: 'User 2'
   },'JHK34R-R903':{
      id: '',name: 'User 3'
   }
}

export class UserModel{
   id: string;
   name: string;
}

private createArray(userObj): UserModel[] {
    return Object.values(userObj)
}

const userObj = {

   'SJKLDFAD903':{
      id: '',name: 'User 3'
   }
}

function createArray(userObj) {
    return Object.values(userObj)
}

console.log(createArray(userObj))
,

试试这个。

private createArray(userObj){ /*(userObj: object)*/
    const users: UserModel[] = [];

    if (userObj == null) { return []; }

    for (const [key,object] of Object.entries(userObj)) {
        const user: UserModel = object as UserModel;
        user.id = key;
        users.push(user);
    }

    return users;
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?