我想為我的資料中的所有物件添加一個新的鍵值對。結構如下所示:
userData:
[
{
"id": 1,
"name": "John Doe",
"email": "xyz.com"
},
{
"id": 2,
"name": "Jane Doe",
"email": "zzz.com"
},
{
"id": 3,
"name": "Anne Doe",
"email": "yyy.com"
}
]
作為一個新的鍵值對,我想添加“logged-in”:true/false。為了獲取這些資料,我使用了另一個服務。然后我將真/假值映射到一個變數中。
const activeUser = await this.userService.getUserProfile().toPromise();
this.currentUser = activeUser.id;
this.loggedInUser = this.getAccountDetails.map(user => ({
self: this.currentUser === user.id
})
)
然后,我想將這些鍵值對推送到 userData 中。
loggedInUser: { self: boolean }[];
addUserStatus() {
this.userData.map((data, i) => ({ ...data,
"logged-in": this.loggedInUser[i].self
}))
}
我想達到的目標:
userData:
[
{
"id": 1,
"name": "John Doe",
"email": "xyz.com",
"logged-in": true
},
{
"id": 2,
"name": "Jane Doe",
"email": "zzz.com",
"logged-in": false
},
{
"id": 3,
"name": "Anne Doe",
"email": "yyy.com",
"logged-in": false
}
]
我在這里做錯了什么?
uj5u.com熱心網友回復:
map回傳新資料,因此您的函式應如下所示
loggedInUser: { self: boolean }[];
addUserStatus() {
const temp = this.userData.map((data, i) => ({ ...data,
"logged-in": this.loggedInUser[i].self
}))
this.userData = temp
}
如果要this.userData直接修改,可以使用其他方法,例如forEach
addUserStatus() {
this.userData.forEach((data, i) => {
data["logged-in"] = this.loggedInUser[i].self;
};
}
uj5u.com熱心網友回復:
您可以簡單地將mapin更改addUserStatus為forEach,您可以在其中更改條目并添加logged-in屬性:
addUserStatus() {
this.userData.forEach((data, i) => {
data["logged-in"] = this.loggedInUser[i].self;
};
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/461460.html
標籤:javascript
