【问题标题】: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'
    },

]

我必须尝试减少,但这让我感到困惑。请指导我这样做。

【问题讨论】:

    标签: javascript node.js arrays loops object


    【解决方案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】:

        你可以简单地使用数组mapMDN

        【讨论】:

          【解决方案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);

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2019-02-28
            • 2021-03-30
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-12-25
            • 1970-01-01
            相关资源
            最近更新 更多