提问者:小点点

如何从当前对象数据数组中创建一个新的对象数组


我有一个像这样的数据返回。 我想创建一个新的数组对象,只显示它的一部分

 [
 {
    _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'
    },

]

我不得不试着减少,但这让我很困惑。 请指导我这样做。


共3个答案

匿名用户

您可以使用数组的映射功能来获得所需的结果。

null

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

匿名用户

您可以使用
1Map()
2Destructing assignment
3Object.Assign()

null

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

匿名用户

您可以简单地使用ArrayMapMDN