vuenewb
vuenewb

Reputation: 99

copying an array of object and ordering some items

I have an array of object and I want to copy that array of object to another array while modifying some items, like copying id only by ascending order and copying only the value of trophies of basketball to trophies. How to do it?

const item = [{
                "id": 33,
                "name": "John"
                "trophies": {
                        "basketball" : 2,
                        "baseball" : 5
                           },
                 "profile": "profile/212"
               }
              {
                "id": 12,
                "name": "Michael"
                "trophies": {
                        "basketball" : 6,
                        "baseball" : 7
                           },
                "profile": "profile/341"
               }
            ]

I want the above array of object after copying to look something like


const item2 = [{
                "id": 12,
                "name": "Michael"
                "trophies": 6,
                "profile": "http://collegeprofile.com/profile/341"
               },
               
              {
                "id": 33,
                "name": "John"
                "trophies": 2,
                "profile": "http://collegeprofile.com/profile/212"
               }
            ]

Upvotes: 0

Views: 36

Answers (1)

Derek Wang
Derek Wang

Reputation: 10204

  • You can sort by id ascending order using Array.prototype.sort
  • And map basketball value to trophies using Array.prototype.map.

const item = [{
  "id": 33,
  "name": "John",
  "trophies": {
    "basketball": 2,
    "baseball": 5
  },
  "profile": "profile/212"
}, {
  "id": 12,
  "name": "Michael",
  "trophies": {
    "basketball": 6,
    "baseball": 7
  },
  "profile": "profile/341"
}];

const output = item.sort((a, b) => (a.id - b.id)).map((item) => ({
  ...item,
  trophies: item.trophies.basketball,
  profile: "http://collegeprofile.com/" + item.profile
}));
console.log(output);

Upvotes: 2

Related Questions