user2983451 user2983451 - 5 months ago 12
JSON Question

Copy Specific Elements of JSON Array To Another

I am creating a Lambda Function in JavaScript which will run a NodeJs Function.
For this i have a S3 function that return a list of Objects in the format

{ Contents:
[ { Key: '1466***',
LastModified: 2016-06-27T***,
ETag: '****',
Size: 708,
StorageClass: 'STANDARD' },
{ Key: '1466***',
LastModified: 2016-06-27T***,
ETag: '****',
Size: 708 }


Now I want to create another JSON Object in the form

{
Objects: [
{
Key: 'STRING_VALUE'
},
Some More Elements
]


i.e I just want the Key Value.

Now I Know I can Iterate Over the array and just copy every element.
But that will block the thread and I don't want that.
Is there any Array Function in Javascript Or Another Better way to achieve this?

Answer

Use Array#map method

var data = {
  Contents: [{
    Key: '1466***',
    LastModified: '2016 - 06 - 27T * * *' ,
    ETag: '****',
    Size: 708,
    StorageClass: 'STANDARD'
  }, {
    Key: '1466***',
    LastModified: '2016 - 06 - 27T * * *' ,
    ETag: '****',
    Size: 708
  }]
};

var res = {
  Objects: data.Contents.map(function(v) {
    return {
      Key: v.Key
    };
  })
}

console.log(res);