如何从我当前的对象数据数组中创建一个新的对象数组
Posted
技术标签:
【中文标题】如何从我当前的对象数据数组中创建一个新的对象数组【英文标题】:How to make a new array of object from my current array of object data 【发布时间】:2020-10-02 05:22:36 【问题描述】:我有一个看起来像这样的数据返回。我想创建一个只显示其中一部分的新数组对象
[
_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'
]
我希望结果看起来像这样
[
namaUnit : 'Edina',
lokasiUnit : 'Gabion',
tanggal : '12 Juni 2020'
hours : '18.25'
,
namaUnit : 'Edina',
lokasiUnit : 'Gabion',
tanggal : '12 Juni 2020'
hours : '11.57'
,
]
我必须尝试减少,但这让我感到困惑。请指导我这样做。
【问题讨论】:
【参考方案1】:您可以使用数组的映射功能来获得所需的结果。
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);
【讨论】:
【参考方案2】:你可以使用
1 map()
2 Destructuring assignment
3Object.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);
【讨论】:
【参考方案3】:你可以简单地使用数组map
MDN
【讨论】:
【参考方案4】: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);
【讨论】:
以上是关于如何从我当前的对象数据数组中创建一个新的对象数组的主要内容,如果未能解决你的问题,请参考以下文章