Bryan Lumbantobing
Bryan Lumbantobing

Reputation: 693

How to make a new array of object from my current array of object data

I have a data return that looks like this. and I want to make a new array object that shows only part of it

 [
 {
    _id: '5ed87ba9ddb4aa0017db8d64',
    solarStokAwal: '120',
    solarStokAkhir: '120',
    solarMinyakMasuk: '123',
    solarMinyakKeluar: '550',
    solarGainLoss: '123',
    pertamaxStokAwal: '550',
    pertamaxStokAkhir: '120',
    pertamaxMinyakMasuk: '550',
    pertamaxMinyakKeluar: '55110',
    pertamaxGainLoss: '550',
    pertaliteStokAwal: '550',
    pertaliteStokAkhir: '120',
    pertaliteMinyakMasuk: '550',
    pertaliteMinyakKeluar: '550',
    pertaliteGainLoss: '550',
    namaUnit: 'edina',
    lokasiUnit: 'gabion',
    owner: '5ed6bf3b8d145b001700ff61',
    __v: 0,
    tanggal: '12 Juni 2020',
    hours: '18.25'
  },
  {
    _id: '5ee30b2491132453bca40ef2',
    solarStokAwal: '12110',
    solarStokAkhir: '120',
    solarMinyakMasuk: '123',
    solarMinyakKeluar: '550',
    solarGainLoss: '123',
    pertamaxStokAwal: '5503',
    pertamaxStokAkhir: '120',
    pertamaxMinyakMasuk: '55220',
    pertamaxMinyakKeluar: '55110',
    pertamaxGainLoss: '550',
    pertaliteStokAwal: '54450',
    pertaliteStokAkhir: '120',
    pertaliteMinyakMasuk: '550',
    pertaliteMinyakKeluar: '550',
    pertaliteGainLoss: '550',
    penjualanPertalite: '320',
    penjualanPertamax: '3121',
    penjualanSolar: '3213',
    namaUnit: 'edina',
    lokasiUnit: 'gabion',
    owner: '5ed6bf3b8d145b001700ff61',
    createdAt: 1591937828020,
    updatedAt: 1591937828020,
    __v: 0,
    tanggal: '12 Juni 2020',
    hours: '11.57'
  }
  ]

I want the result looks like this

[
    {
       namaUnit : 'Edina',
       lokasiUnit : 'Gabion',
       tanggal : '12 Juni 2020'
       hours : '18.25'
    },
    {
       namaUnit : 'Edina',
       lokasiUnit : 'Gabion',
       tanggal : '12 Juni 2020'
       hours : '11.57'
    },

]

I have to try to reduce but it makes me confused. please guide me to do this.

Upvotes: 1

Views: 54

Answers (4)

Rahul Bhobe
Rahul Bhobe

Reputation: 4451

You could use
1 map()
2 Destructuring assignment
3 Object.assign()

let arr1 = [
    { _id: '5ed87ba9ddb4aa0017db8d64', solarStokAwal: '120', solarStokAkhir: '120', solarMinyakMasuk: '123', solarMinyakKeluar: '550', solarGainLoss: '123', pertamaxStokAwal: '550', pertamaxStokAkhir: '120', pertamaxMinyakMasuk: '550', pertamaxMinyakKeluar: '55110', pertamaxGainLoss: '550', pertaliteStokAwal: '550', pertaliteStokAkhir: '120', pertaliteMinyakMasuk: '550', pertaliteMinyakKeluar: '550', pertaliteGainLoss: '550', namaUnit: 'edina', lokasiUnit: 'gabion', owner: '5ed6bf3b8d145b001700ff61', __v: 0, tanggal: '12 Juni 2020', hours: '18.25' },
    { _id: '5ee30b2491132453bca40ef2', solarStokAwal: '12110', solarStokAkhir: '120', solarMinyakMasuk: '123', solarMinyakKeluar: '550', solarGainLoss: '123', pertamaxStokAwal: '5503', pertamaxStokAkhir: '120', pertamaxMinyakMasuk: '55220', pertamaxMinyakKeluar: '55110', pertamaxGainLoss: '550', pertaliteStokAwal: '54450', pertaliteStokAkhir: '120', pertaliteMinyakMasuk: '550', pertaliteMinyakKeluar: '550', pertaliteGainLoss: '550', penjualanPertalite: '320', penjualanPertamax: '3121', penjualanSolar: '3213', namaUnit: 'edina', lokasiUnit: 'gabion', owner: '5ed6bf3b8d145b001700ff61', createdAt: 1591937828020, updatedAt: 1591937828020, __v: 0, tanggal: '12 Juni 2020', hours: '11.57' }
]

let arr2 = arr1.map(({namaUnit, lokasiUnit, tanggal, hours}) => Object.assign({}, {namaUnit, lokasiUnit, tanggal, hours}));
console.log(arr2);

Upvotes: 1

Uzair
Uzair

Reputation: 775

var data = [
  {
    _id: '5ed87ba9ddb4aa0017db8d64',
    solarStokAwal: '120',
    solarStokAkhir: '120',
    solarMinyakMasuk: '123',
    solarMinyakKeluar: '550',
    solarGainLoss: '123',
    pertamaxStokAwal: '550',
    pertamaxStokAkhir: '120',
    pertamaxMinyakMasuk: '550',
    pertamaxMinyakKeluar: '55110',
    pertamaxGainLoss: '550',
    pertaliteStokAwal: '550',
    pertaliteStokAkhir: '120',
    pertaliteMinyakMasuk: '550',
    pertaliteMinyakKeluar: '550',
    pertaliteGainLoss: '550',
    namaUnit: 'edina',
    lokasiUnit: 'gabion',
    owner: '5ed6bf3b8d145b001700ff61',
    __v: 0,
    tanggal: '12 Juni 2020',
    hours: '18.25'
  },
  {
    _id: '5ee30b2491132453bca40ef2',
    solarStokAwal: '12110',
    solarStokAkhir: '120',
    solarMinyakMasuk: '123',
    solarMinyakKeluar: '550',
    solarGainLoss: '123',
    pertamaxStokAwal: '5503',
    pertamaxStokAkhir: '120',
    pertamaxMinyakMasuk: '55220',
    pertamaxMinyakKeluar: '55110',
    pertamaxGainLoss: '550',
    pertaliteStokAwal: '54450',
    pertaliteStokAkhir: '120',
    pertaliteMinyakMasuk: '550',
    pertaliteMinyakKeluar: '550',
    pertaliteGainLoss: '550',
    penjualanPertalite: '320',
    penjualanPertamax: '3121',
    penjualanSolar: '3213',
    namaUnit: 'edina',
    lokasiUnit: 'gabion',
    owner: '5ed6bf3b8d145b001700ff61',
    createdAt: 1591937828020,
    updatedAt: 1591937828020,
    __v: 0,
    tanggal: '12 Juni 2020',
    hours: '11.57'
  }
];
   

    var count = 0;
    var tmp = { newArr: []};

    for (var OBJ in data) {
        var tempObj = {"namaUnit" :"","lokasiUnit": ""};
        tempObj.namaUnit = data[OBJ].namaUnit;
        tempObj.lokasiUnit =  data[OBJ].lokasiUnit;
        tmp.newArr[count] = tempObj;
        
        count++;
    }

console.log(tmp);

Upvotes: 0

Rajan
Rajan

Reputation: 1568

You can use map functionality of an array to get the required results.

var original = [
  {
    _id: '5ed87ba9ddb4aa0017db8d64',
    solarStokAwal: '120',
    solarStokAkhir: '120',
    solarMinyakMasuk: '123',
    solarMinyakKeluar: '550',
    solarGainLoss: '123',
    pertamaxStokAwal: '550',
    pertamaxStokAkhir: '120',
    pertamaxMinyakMasuk: '550',
    pertamaxMinyakKeluar: '55110',
    pertamaxGainLoss: '550',
    pertaliteStokAwal: '550',
    pertaliteStokAkhir: '120',
    pertaliteMinyakMasuk: '550',
    pertaliteMinyakKeluar: '550',
    pertaliteGainLoss: '550',
    namaUnit: 'edina',
    lokasiUnit: 'gabion',
    owner: '5ed6bf3b8d145b001700ff61',
    __v: 0,
    tanggal: '12 Juni 2020',
    hours: '18.25'
  },
  {
    _id: '5ee30b2491132453bca40ef2',
    solarStokAwal: '12110',
    solarStokAkhir: '120',
    solarMinyakMasuk: '123',
    solarMinyakKeluar: '550',
    solarGainLoss: '123',
    pertamaxStokAwal: '5503',
    pertamaxStokAkhir: '120',
    pertamaxMinyakMasuk: '55220',
    pertamaxMinyakKeluar: '55110',
    pertamaxGainLoss: '550',
    pertaliteStokAwal: '54450',
    pertaliteStokAkhir: '120',
    pertaliteMinyakMasuk: '550',
    pertaliteMinyakKeluar: '550',
    pertaliteGainLoss: '550',
    penjualanPertalite: '320',
    penjualanPertamax: '3121',
    penjualanSolar: '3213',
    namaUnit: 'edina',
    lokasiUnit: 'gabion',
    owner: '5ed6bf3b8d145b001700ff61',
    createdAt: 1591937828020,
    updatedAt: 1591937828020,
    __v: 0,
    tanggal: '12 Juni 2020',
    hours: '11.57'
  }
];

var filltered = original.map(item => {
  return ({
    namaUnit: item.namaUnit,
    lokasiUnit: item.lokasiUnit,
    tanggal: item.tanggal,
    hours: item.hours,
  });
});

console.log(filltered);

Upvotes: 3

Thang Le
Thang Le

Reputation: 27

you can simply use Array map MDN

Upvotes: 0

Related Questions