Reputation: 693
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
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
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
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