I have the following array of obect lets call it “myArray”:
JavaScript
x
4
1
0: { name: "name1", key: "12weqw3123123"}
2
1: { name: "name2", key: "1231231rasd"}
3
2: { name: "name3", key: "sa43214dasd"}
4
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:
JavaScript
1
4
1
0: { key: "name1", name: "12weqw3123123"}
2
1: { key: "name2", name: "1231231rasd"}
3
2: { key: "name3", name: "sa43214dasd"}
4
I tried with
JavaScript
1
3
1
const { name } = myArray;
2
const newResp = { key: name };
3
but its undefined and I tried also with
JavaScript
1
5
1
const newArray = [myArray].map((r: { name: any; key: any }) => {
2
r.name = r.key;
3
delete r.key;
4
});
5
any suggestions? Thanks
Advertisement
Answer
You could handle it with a forEach
:
JavaScript
1
6
1
myArray.forEach(item => {
2
let tmp = item.key;
3
item.key = item.name;
4
item.name = tmp;
5
});
6
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.
JavaScript
1
7
1
let newArray = myArray.map(item => {
2
return {
3
key: item.name,
4
name: item.key,
5
};
6
});
7