-2

I have these objects below and I want to get all the "event_properties" data that has only with "event_name: "Placed Order"

How can I create a loop in javascript to do that?

{
    "count": 1,
    "object": "$list",
    "data": [
        {
            "event_properties": {
                "Email Domain": "gmail.com",
                "Client Name": "Gmail image proxy",
            },
            "uuid": "87519c80-6fb0-11e8-8001-24fdba31a7b0",
            "event_name": "Opened Email",
            "person": {
                "updated": "2018-06-14 08:54:52",
                "$last_name": "Peterson",
            },
        },
        {
            "event_properties": {
                "Email Domain": "gmail.com",
                "Client Name": "Gmail image proxy",
            },
            "uuid": "87519c80-6fb0-11e8-8001-24fdba31a7b0",
            "event_name": "Placed Order",
            "person": {
                "updated": "2018-06-14 08:54:52",
                "$last_name": "Davis",
            },
        },      
        {
            "event_properties": {
                "Email Domain": "gmail.com",
                "Client Name": "Gmail image proxy",
            },
            "uuid": "87519c80-6fb0-11e8-8001-24fdba31a7b0",
            "event_name": "Placed Order",
            "person": {
                "updated": "2018-06-14 08:54:52",
                "$last_name": "St. Patrick",
            },
        }       

    ],
    "next": "7e60cb00-6fb0-11e8-8001-ee622c54cc84"
}

enter image description here

Jonathon Reinhart
  • 132,704
  • 33
  • 254
  • 328
John Mark
  • 129
  • 1
  • 15
  • 1
    Possible duplicate of [Find object by id in an array of JavaScript objects](https://stackoverflow.com/questions/7364150/find-object-by-id-in-an-array-of-javascript-objects) Or [Get JavaScript object from array of objects by value of property](https://stackoverflow.com/questions/13964155/get-javascript-object-from-array-of-objects-by-value-of-property) – DBS Jun 14 '18 at 09:33

3 Answers3

0

Use Array.filter

let obj = {"count":1,"object":"$list","data":[{"event_properties":{"Email Domain":"gmail.com","Client Name":"Gmail image proxy"},"uuid":"87519c80-6fb0-11e8-8001-24fdba31a7b0","event_name":"Opened Email","person":{"updated":"2018-06-14 08:54:52","$last_name":"Peterson"}},{"event_properties":{"Email Domain":"gmail.com","Client Name":"Gmail image proxy"},"uuid":"87519c80-6fb0-11e8-8001-24fdba31a7b0","event_name":"Placed Order","person":{"updated":"2018-06-14 08:54:52","$last_name":"Davis"}},{"event_properties":{"Email Domain":"gmail.com","Client Name":"Gmail image proxy"},"uuid":"87519c80-6fb0-11e8-8001-24fdba31a7b0","event_name":"Placed Order","person":{"updated":"2018-06-14 08:54:52","$last_name":"St. Patrick"}}],"next":"7e60cb00-6fb0-11e8-8001-ee622c54cc84"};

let result = obj.data.filter(({event_name}) => event_name === "Placed Order");
console.log(result);
Nikhil Aggarwal
  • 28,197
  • 4
  • 43
  • 59
0

First, use filter to filter your array, then use map to return only event_properties.

const object = {
    "count": 1,
    "object": "$list",
    "data": [
        {
            "event_properties": {
                "Email Domain": "gmail.com",
                "Client Name": "Gmail image proxy",
            },
            "uuid": "87519c80-6fb0-11e8-8001-24fdba31a7b0",
            "event_name": "Opened Email",
            "person": {
                "updated": "2018-06-14 08:54:52",
                "$last_name": "Peterson",
            },
        },
        {
            "event_properties": {
                "Email Domain": "gmail.com",
                "Client Name": "Gmail image proxy",
            },
            "uuid": "87519c80-6fb0-11e8-8001-24fdba31a7b0",
            "event_name": "Placed Order",
            "person": {
                "updated": "2018-06-14 08:54:52",
                "$last_name": "Davis",
            },
        },      
        {
            "event_properties": {
                "Email Domain": "gmail.com",
                "Client Name": "Gmail image proxy",
            },
            "uuid": "87519c80-6fb0-11e8-8001-24fdba31a7b0",
            "event_name": "Placed Order",
            "person": {
                "updated": "2018-06-14 08:54:52",
                "$last_name": "St. Patrick",
            },
        }       

    ],
    "next": "7e60cb00-6fb0-11e8-8001-ee622c54cc84"
}

const result = object.data.filter(item => item.event_name === 'Placed Order').map(item => item.event_properties);
console.log(result);
sjahan
  • 5,720
  • 3
  • 19
  • 42
0

var a={ "count": 1, "object": "$list", "data": [ { "event_properties": { "Email Domain": "gmail.com", "Client Name": "Gmail image proxy", }, "uuid": "87519c80-6fb0-11e8-8001-24fdba31a7b0", "event_name": "Opened Email", "person": { "updated": "2018-06-14 08:54:52", "$last_name": "Peterson", }, }, { "event_properties": { "Email Domain": "gmail.com", "Client Name": "Gmail image proxy", }, "uuid": "87519c80-6fb0-11e8-8001-24fdba31a7b0", "event_name": "Placed Order", "person": { "updated": "2018-06-14 08:54:52", "$last_name": "Davis", }, }, { "event_properties": { "Email Domain": "gmail.com", "Client Name": "Gmail image proxy", }, "uuid": "87519c80-6fb0-11e8-8001-24fdba31a7b0", "event_name": "Placed Order", "person": { "updated": "2018-06-14 08:54:52", "$last_name": "St. Patrick", }, } ], "next": "7e60cb00-6fb0-11e8-8001-ee622c54cc84" }
console.log(a.data.filter(value=>value.event_name=='Placed Order'));
Gowtham
  • 1,557
  • 12
  • 24