這個問題在這里已經有了答案: 如何從物件陣列中映射多個屬性 7 個答案 4天前關閉。
arr = [
{
"_id": "6271fd40fe5c58d4cbd3a72f",
"index": 0,
"guid": "60f843d2-1b6b-4536-b421-e5df1c4ab735",
"isActive": true,
"balance": "$2,534.11",
"picture": "http://placehold.it/32x32",
"age": 27,
"eyeColor": "brown",
"name": "Miranda Nguyen",
"gender": "male",
"company": "ZENTIA",
"email": "[email protected]",
"phone": " 1 (833) 466-3207",
"address": "198 Dank Court, Hartsville/Hartley, Indiana, 8416",
"about": "Consectetur proident anim do commodo ipsum. Elit consectetur irure dolore voluptate. Enim aute voluptate et qui do. Eu pariatur laboris labore esse enim reprehenderit mollit ullamco fugiat. Laborum sunt veniam consectetur laboris cupidatat. Lorem tempor occaecat labore ut et eiusmod amet.\r\n",
"registered": "2021-06-16T11:50:54 -09:00"
},
{
"_id": "6271fd40e30856d15651c60c",
"index": 1,
"guid": "ee647592-0647-4ad5-96b1-eb6c06a32dbd",
"isActive": true,
"balance": "$2,636.22",
"picture": "http://placehold.it/32x32",
"age": 35,
"eyeColor": "blue",
"name": "Florence Flynn",
"gender": "female",
"company": "ELENTRIX",
"email": "[email protected]",
"phone": " 1 (901) 525-3731",
"address": "246 Billings Place, Brandermill, Guam, 5037",
"about": "Sint non dolore cupidatat voluptate laboris adipisicing eu quis. Laboris nostrud qui dolor cillum dolor nulla sint culpa est reprehenderit sint ipsum nisi excepteur. Qui cupidatat sint do aliquip ut. Officia est aliquip fugiat ex enim do sunt consequat.\r\n",
"registered": "2014-12-10T08:44:47 -09:00"
},
{
"_id": "6271fd404394e16d79143873",
"index": 2,
"guid": "3d3890ff-8241-4a2b-a361-789e0298817a",
"isActive": false,
"balance": "$1,047.32",
"picture": "http://placehold.it/32x32",
"age": 25,
"eyeColor": "green",
"name": "Debbie Pratt",
"gender": "female",
"company": "OPTIQUE",
"email": "[email protected]",
"phone": " 1 (831) 537-3188",
"address": "737 Quentin Street, Calpine, Louisiana, 9102",
"about": "Officia nisi labore mollit cupidatat exercitation commodo duis adipisicing officia amet laborum. Nulla qui commodo aliqua reprehenderit dolore cupidatat esse ea pariatur sint ad dolore. Exercitation duis veniam velit occaecat est irure quis labore occaecat.\r\n",
"registered": "2016-09-19T10:00:38 -09:00"
}
]
我想創建一個只包含id,name和agefrom的新陣列arr。
我試圖通過使用 map() 來做到這一點,但我不知道如何很好地使用它。是否可以通過一次使用 map() 來做到這一點,還是除了 map() 之外我還必須使用其他方法?
uj5u.com熱心網友回復:
你有多種方法可以做到這一點。
這是 map 的檔案。
你可以像這樣實作 map 方法:
const yourNewArray = arr.map((item)=>{
return {
id:item._id,
name:item.name,
age:item.age
}
})
您可以在每個回圈中執行此操作,但在這里使用映射的優點是,如果您想使用普通的 for 回圈或 forEach 回圈來實作,映射總是回傳元素,您必須在陣列中添加每個元素
.push
如果您只想從陣列中回傳一些值,那么您有.filter()方法
uj5u.com熱心網友回復:
arr = [
{
"_id": "6271fd40fe5c58d4cbd3a72f",
"index": 0,
"guid": "60f843d2-1b6b-4536-b421-e5df1c4ab735",
"isActive": true,
"balance": "$2,534.11",
"picture": "http://placehold.it/32x32",
"age": 27,
"eyeColor": "brown",
"name": "Miranda Nguyen",
"gender": "male",
"company": "ZENTIA",
"email": "[email protected]",
"phone": " 1 (833) 466-3207",
"address": "198 Dank Court, Hartsville/Hartley, Indiana, 8416",
"about": "Consectetur proident anim do commodo ipsum. Elit consectetur irure dolore voluptate. Enim aute voluptate et qui do. Eu pariatur laboris labore esse enim reprehenderit mollit ullamco fugiat. Laborum sunt veniam consectetur laboris cupidatat. Lorem tempor occaecat labore ut et eiusmod amet.\r\n",
"registered": "2021-06-16T11:50:54 -09:00"
},
{
"_id": "6271fd40e30856d15651c60c",
"index": 1,
"guid": "ee647592-0647-4ad5-96b1-eb6c06a32dbd",
"isActive": true,
"balance": "$2,636.22",
"picture": "http://placehold.it/32x32",
"age": 35,
"eyeColor": "blue",
"name": "Florence Flynn",
"gender": "female",
"company": "ELENTRIX",
"email": "[email protected]",
"phone": " 1 (901) 525-3731",
"address": "246 Billings Place, Brandermill, Guam, 5037",
"about": "Sint non dolore cupidatat voluptate laboris adipisicing eu quis. Laboris nostrud qui dolor cillum dolor nulla sint culpa est reprehenderit sint ipsum nisi excepteur. Qui cupidatat sint do aliquip ut. Officia est aliquip fugiat ex enim do sunt consequat.\r\n",
"registered": "2014-12-10T08:44:47 -09:00"
},
{
"_id": "6271fd404394e16d79143873",
"index": 2,
"guid": "3d3890ff-8241-4a2b-a361-789e0298817a",
"isActive": false,
"balance": "$1,047.32",
"picture": "http://placehold.it/32x32",
"age": 25,
"eyeColor": "green",
"name": "Debbie Pratt",
"gender": "female",
"company": "OPTIQUE",
"email": "[email protected]",
"phone": " 1 (831) 537-3188",
"address": "737 Quentin Street, Calpine, Louisiana, 9102",
"about": "Officia nisi labore mollit cupidatat exercitation commodo duis adipisicing officia amet laborum. Nulla qui commodo aliqua reprehenderit dolore cupidatat esse ea pariatur sint ad dolore. Exercitation duis veniam velit occaecat est irure quis labore occaecat.\r\n",
"registered": "2016-09-19T10:00:38 -09:00"
}
]
// long hand
let result = arr.map(function(obj) {
return {
_id: obj._id,
name: obj.name,
age: obj.age
}
})
console.log(result)
// shorthand, requires support for object destructuring, arrow functions
result = arr.map(({ _id, name, age }) => ({ _id, name, age }))
console.log(result)
uj5u.com熱心網友回復:
你可以這樣做
const arr = [
{
"_id": "6271fd40fe5c58d4cbd3a72f",
"index": 0,
"guid": "60f843d2-1b6b-4536-b421-e5df1c4ab735",
"isActive": true,
"balance": "$2,534.11",
"picture": "http://placehold.it/32x32",
"age": 27,
"eyeColor": "brown",
"name": "Miranda Nguyen",
"gender": "male",
"company": "ZENTIA",
"email": "[email protected]",
"phone": " 1 (833) 466-3207",
"address": "198 Dank Court, Hartsville/Hartley, Indiana, 8416",
"about": "Consectetur proident anim do commodo ipsum. Elit consectetur irure dolore voluptate. Enim aute voluptate et qui do. Eu pariatur laboris labore esse enim reprehenderit mollit ullamco fugiat. Laborum sunt veniam consectetur laboris cupidatat. Lorem tempor occaecat labore ut et eiusmod amet.\r\n",
"registered": "2021-06-16T11:50:54 -09:00"
},
{
"_id": "6271fd40e30856d15651c60c",
"index": 1,
"guid": "ee647592-0647-4ad5-96b1-eb6c06a32dbd",
"isActive": true,
"balance": "$2,636.22",
"picture": "http://placehold.it/32x32",
"age": 35,
"eyeColor": "blue",
"name": "Florence Flynn",
"gender": "female",
"company": "ELENTRIX",
"email": "[email protected]",
"phone": " 1 (901) 525-3731",
"address": "246 Billings Place, Brandermill, Guam, 5037",
"about": "Sint non dolore cupidatat voluptate laboris adipisicing eu quis. Laboris nostrud qui dolor cillum dolor nulla sint culpa est reprehenderit sint ipsum nisi excepteur. Qui cupidatat sint do aliquip ut. Officia est aliquip fugiat ex enim do sunt consequat.\r\n",
"registered": "2014-12-10T08:44:47 -09:00"
},
{
"_id": "6271fd404394e16d79143873",
"index": 2,
"guid": "3d3890ff-8241-4a2b-a361-789e0298817a",
"isActive": false,
"balance": "$1,047.32",
"picture": "http://placehold.it/32x32",
"age": 25,
"eyeColor": "green",
"name": "Debbie Pratt",
"gender": "female",
"company": "OPTIQUE",
"email": "[email protected]",
"phone": " 1 (831) 537-3188",
"address": "737 Quentin Street, Calpine, Louisiana, 9102",
"about": "Officia nisi labore mollit cupidatat exercitation commodo duis adipisicing officia amet laborum. Nulla qui commodo aliqua reprehenderit dolore cupidatat esse ea pariatur sint ad dolore. Exercitation duis veniam velit occaecat est irure quis labore occaecat.\r\n",
"registered": "2016-09-19T10:00:38 -09:00"
}
]
const result = arr.map(({_id, name, age}) => ({_id, name, age}))
console.log(result)
uj5u.com熱心網友回復:
是的,您可以使用Array.prototype.map():
const arr = [{_id: '6271fd40fe5c58d4cbd3a72f',index: 0,guid: '60f843d2-1b6b-4536-b421-e5df1c4ab735',isActive: true,balance: '$2,534.11',picture: 'http://placehold.it/32x32',age: 27,eyeColor: 'brown',name: 'Miranda Nguyen',gender: 'male',company: 'ZENTIA',email: '[email protected]',phone: ' 1 (833) 466-3207',address: '198 Dank Court, Hartsville/Hartley, Indiana, 8416',about: 'Consectetur proident anim do commodo ipsum. Elit consectetur irure dolore voluptate. Enim aute voluptate et qui do. Eu pariatur laboris labore esse enim reprehenderit mollit ullamco fugiat. Laborum sunt veniam consectetur laboris cupidatat. Lorem tempor occaecat labore ut et eiusmod amet.\r\n',registered: '2021-06-16T11:50:54 -09:00',},{_id: '6271fd40e30856d15651c60c',index: 1,guid: 'ee647592-0647-4ad5-96b1-eb6c06a32dbd',isActive: true,balance: '$2,636.22',picture: 'http://placehold.it/32x32',age: 35,eyeColor: 'blue',name: 'Florence Flynn',gender: 'female',company: 'ELENTRIX',email: '[email protected]',phone: ' 1 (901) 525-3731',address: '246 Billings Place, Brandermill, Guam, 5037',about: 'Sint non dolore cupidatat voluptate laboris adipisicing eu quis. Laboris nostrud qui dolor cillum dolor nulla sint culpa est reprehenderit sint ipsum nisi excepteur. Qui cupidatat sint do aliquip ut. Officia est aliquip fugiat ex enim do sunt consequat.\r\n',registered: '2014-12-10T08:44:47 -09:00',},{_id: '6271fd404394e16d79143873',index: 2,guid: '3d3890ff-8241-4a2b-a361-789e0298817a',isActive: false,balance: '$1,047.32',picture: 'http://placehold.it/32x32',age: 25,eyeColor: 'green',name: 'Debbie Pratt',gender: 'female',company: 'OPTIQUE',email: '[email protected]',phone: ' 1 (831) 537-3188',address: '737 Quentin Street, Calpine, Louisiana, 9102',about: 'Officia nisi labore mollit cupidatat exercitation commodo duis adipisicing officia amet laborum. Nulla qui commodo aliqua reprehenderit dolore cupidatat esse ea pariatur sint ad dolore. Exercitation duis veniam velit occaecat est irure quis labore occaecat.\r\n',registered: '2016-09-19T10:00:38 -09:00',},]
const result = arr.map(({ _id, name, age }) => ({ id: _id, name, age }))
console.log(result)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/471990.html
標籤:javascript 数组 字典
