I have the following array of obect lets call it “myArray”:
0: { name: "name1", key: "12weqw3123123"} 1: { name: "name2", key: "1231231rasd"} 2: { name: "name3", key: "sa43214dasd"}
What I would like to achieve is to switch the properties naming form name to key and the opposite so the final result is something like that:
0: { key: "name1", name: "12weqw3123123"} 1: { key: "name2", name: "1231231rasd"} 2: { key: "name3", name: "sa43214dasd"}
I tried with
const { name } = myArray; const newResp = { key: name };
but its undefined and I tried also with
const newArray = [...myArray].map((r: { name: any; key: any }) => { r.name = r.key; delete r.key; });
any suggestions? Thanks
Advertisement
Answer
You could handle it with a forEach
:
myArray.forEach(item => { let tmp = item.key; item.key = item.name; item.name = tmp; });
It can technically work with map
as well, but in general map
should be used when you want to create a new array, and not to update in-place.
let newArray = myArray.map(item => { return { key: item.name, name: item.key, }; });