如何解决对象到 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 举报,一经查实,本站将立刻删除。