Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to Map Array values from one Array to Another Array JavaScript?

This is my Code. Where I want to Pass the Values of kvArray to Second Array.

var kvArray = [{key: 1, value: 10}, 
               {key: 2, value: 20}, 
               {key: 3, value: 30}];

var reformattedArray = kvArray.map(obj => { 
   var payload = {};
   payload["rt"];
   payload["do"];
   payload["f1"];
   payload[obj.key] = obj.value;
   console.log(payload["rt"]);
   return payload;
});

The console.log is coming undefined. Can anyone help here? I am pretty new to Map function.

I want to Print this result.

 payload["do"]=10
 payload["f1"]=20
 payload["f2"]=30
like image 415
codemt Avatar asked Sep 08 '26 23:09

codemt


2 Answers

var kvArray = [{key: 1, value: 10}, 
               {key: 2, value: 20}, 
               {key: 3, value: 30}];

var reformattedArray = kvArray.map(obj =>{ 
   var payload = {};
   const mapping = [null, 'rt', 'do', 'f1']; 
   const key = mapping[obj.key];
   payload[key] = obj.value;
   return payload;
});
console.log(reformattedArray);
like image 82
Andrey Davydov Avatar answered Sep 10 '26 12:09

Andrey Davydov


You could use a destructuring assignment and build a new object with computed property names.

For the final keys, you could use an object keys with corresopnding keys to the the keys of the given object.

var kvArray = [{ key: 1, value: 10 }, { key: 2, value: 20 }, { key: 3, value: 30 }],
    keys = { 1: 'rt', 2: 'do', 3: 'fi' },
    result = kvArray.map(({ key, value }) => ({ [keys[key]]: value }));
    
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
like image 43
Nina Scholz Avatar answered Sep 10 '26 14:09

Nina Scholz



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!