簡體   English   中英

如何將數組中的值映射到對象數組?

[英]How to map values from an array to an array of Object?

我有兩個相同大小的數組。 第一個是對象數組,第二個是數字數組。 我正在尋找一種優雅的方法來將第二個數組的值映射到第一個數組的每個對象的新字段上。 這是我的代碼:

 // Let's say that after my back-end request, I end up with these arrays let promises = [{data: {count:56}}, {data: {count:29}}] let users = [{id:1, name:'Alice'}, {id:2, name: 'Bob'}] // I'd like to add the 'count' value to each user users.map((user,index) => user.newField = promises[index].data.count) // Expected output : [{id:1, name:'Alice', newField:56}, {id:2, name: 'Bob', newField:29}] console.log(users)

編輯

實際上,在復制和更改我的代碼時,我發現了我的錯誤。 如果有人有更清潔的方法,我會很高興看到它。 我認為它可能會有所幫助,所以無論如何我都會發布它。

你的方式完全沒問題,但我想以適當的方式使用map()並且不要改變原始數據。

 let promises = [{data: {count:56}}, {data: {count:29}}] let users = [{id:1, name:'Alice'}, {id:2, name: 'Bob'}] const res = users.map((x, i) => ({...x, newField: promises[i].data.count})); console.log(res)

您可以在promises上使用forEach並使用解構語法

 let promises = [{data: {count:56}}, {data: {count:29}}] let users = [{id:1, name:'Alice'}, {id:2, name: 'Bob'}] promises.forEach(({data: {count}}, i) => users[i].newField = count ) console.log(users)

我想你想要這樣的東西——

 let promises = [{data: {count:56}}, {data: {count:29}}] let users = [{id:1, name:'Alice'}, {id:2, name: 'Bob'}]; const newUsers = users.map((value, index) => { value.count = promises[index].data.count; return value; }); console.log(newUsers);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM