Skip to content Skip to sidebar Skip to footer

Push Element Value From Array Of Objects To A Variable

I have some data from a collection named 'service' which has data like this: let service_data = [ { 'name':'Service 1', 'price':60, 'resource_group_ids' : [

Solution 1:

You could use flatMap

const resource_groups = service_data.flatMap(o => o.resource_group_ids)

const service_data = [{"name":"Service 1","price":60,"resource_group_ids":["5d5e5dea99d9b75ff2f78dcd","5d5e85d329782914332368c8"]},{"name":"Service 2","price":60,"resource_group_ids":["5d5e5dea99d9b75ff2f7cfe"]}]

const resource_groups = service_data.flatMap(o => o.resource_group_ids)

console.log(resource_groups)

If flatMap is not supported, use concat and spread syntax to merge the 2D array returned by map

const resource_groups = [].concat(...service_data.map(o=> o.resource_group_ids))

Solution 2:

You can use flatMap

constextractFlat = (arr, key) => {
    return arr.flatMap(e => e[key]);
};

let service_data = [
  {
    "name":"Service 1",
    "price":60,
    "resource_group_ids" : 
         ["5d5e5dea99d9b75ff2f78dcd","5d5e85d329782914332368c8"]
  },
  {
    "name":"Service 2",
    "price":60,
    "resource_group_ids" : ["5d5e5dea99d9b75ff2f7cfe"]
  }
]

const resource_group_ids = extractFlat(service_data, 'resource_group_ids');
console.log(resource_group_ids);

or reduce on older environments

constextractFlat = (arr, key) => {
    return arr.reduce((acc, x) => acc.concat(x[key]), []);
};

Solution 3:

You can achieve this with .map(), .join() and .split()

const service_data = [
      {
        name: 'Service 1',
        price: 60,
        resource_group_ids:
          ['5d5e5dea99d9b75ff2f78dcd', '5d5e85d329782914332368c8']
      },
      {
        name: 'Service 2',
        price: 60,
        resource_group_ids: ['5d5e5dea99d9b75ff2f7cfe']
      },
    ];
    
    const result = service_data.map((r) => { return r.resource_group_ids; 
               }).join(',').split(',');
    console.log(result);

Solution 4:

Using .reduce:

let service_data = [{
    "name": "Service 1",
    "price": 60,
    "resource_group_ids": ["5d5e5dea99d9b75ff2f78dcd", "5d5e85d329782914332368c8"]
  },
  {
    "name": "Service 2",
    "price": 60,
    "resource_group_ids": ["5d5e5dea99d9b75ff2f7cfe"]
  }
]

const resource_groups = service_data.reduce(function(result, item) {
  result.concat(item.resource_group_ids)
}, [])

console.log(resource_groups)

Post a Comment for "Push Element Value From Array Of Objects To A Variable"