1

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.

4 Answers 4

3

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);

Sign up to request clarification or add additional context in comments.

Comments

1

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);

Comments

0

you can simply use Array map MDN

Comments

0

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);

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.