1. 程式人生 > 實用技巧 >陣列遍歷物件的item去掉某一個item物件變成null

陣列遍歷物件的item去掉某一個item物件變成null

var arr=[{obj:'1'},{obj:'2'}]
類似以上陣列進行條件判斷之後變成 [{obj:'1',null}] 這種陣列。

遍歷查詢arr的lostpower.lostList下item中所有item的power都是null的項對於arr的索引集合。

const arr = [
      {
        'date': '2020-04-19',
        'genIntegrated': null,
        'complantPowerRate': null,
        'dayPowerMaxTime': null,
        'stationAvailability': null,
        'genPlantConsume': null,
        'integratedLostEH': '0.0000',
        'ggg': null,
        'carbonDioxide': '647376000.0000',
        'comPlantPower': null,
        'slopeAccRadiationSum': '24.32',
        'plantLossRate': null,
        'genInternet': null,
        'resourceInditor': null,
        'total': '0.8928',
        'theoryPower': '34483.5876',
        'topSunshineHours': '6.7562',
        'pvMatrixLossHours': '0.0000',
        'yyy': null,
        'yyyyy': null,
        'stationName': '永仁',
        'genInverter': '25.8950',
        'id': 20200419,
        'buyPower': null,
        'inverterLostEH': '0.0000',
        'resourceValue': '0.03',
        'comPR': null,
        'plantPowerRate': null,
        'markCoal': '259729588.7663',
        'internetLostEH': '0.0000',
        'powerInditor': null,
        'jjjj': null,
        'outputPowerMax': '43.92',
        'lostList': [
          {
            'name': '光伏裝置缺陷',
            'power': null,
          },
          {
            'name': '其他未查明',
            'power': '0.1',
          },
          {
            'name': '廠外因素',
            'power': null,
          },
          {
            'name': '變電裝置缺陷',
            'power': null,
          },
          {
            'name': '外部因素',
            'power': null,
          },
          {
            'name': '未查明降容',
            'power': '0.2',
          },
          {
            'name': '計劃停運',
            'power': '0.3',
          },
          {
            'name': '裝置故障',
            'power': '0.4',
          },
          {
            'name': '限電',
            'power': null,
          },
        ],
        'ttt': null,
        'equivalentHours': '5.0735',
        'dayPlantUsePower': null,
        'lostPower': {
          'total': '0.8928',
          'lostList': [
            {
              'name': '光伏裝置缺陷',
              'power': null,
            },
            {
              'name': '其他未查明',
              'power': '0.2232',
            },
            {
              'name': '廠外因素',
              'power': null,
            },
            {
              'name': '變電裝置缺陷',
              'power': null,
            },
            {
              'name': '外部因素',
              'power': null,
            },
            {
              'name': '未查明降容',
              'power': '0.2232',
            },
            {
              'name': '計劃停運',
              'power': '0.2232',
            },
            {
              'name': '裝置故障',
              'power': null,
            },
            {
              'name': '限電',
              'power': null,
            },
          ],
        },
      },
      {
        'date': '2020-04-20',
        'genIntegrated': null,
        'complantPowerRate': null,
        'dayPowerMaxTime': null,
        'stationAvailability': null,
        'genPlantConsume': null,
        'integratedLostEH': '0.0000',
        'ggg': null,
        'carbonDioxide': '689398750.0000',
        'comPlantPower': null,
        'slopeAccRadiationSum': '26.31',
        'plantLossRate': null,
        'genInternet': null,
        'resourceInditor': null,
        'total': '0.8928',
        'theoryPower': '37296.3918',
        'topSunshineHours': '7.3073',
        'pvMatrixLossHours': '0.0000',
        'yyy': null,
        'yyyyy': null,
        'stationName': '永仁',
        'genInverter': '27.5760',
        'id': 20200420,
        'buyPower': null,
        'inverterLostEH': '0.0000',
        'resourceValue': '0.03',
        'comPR': null,
        'plantPowerRate': null,
        'markCoal': '276589267.8034',
        'internetLostEH': '0.0000',
        'powerInditor': null,
        'jjjj': null,
        'outputPowerMax': '41.54',
        'lostList': [
          {
            'name': '光伏裝置缺陷',
            'power': '0.2232',
          },
          {
            'name': '其他未查明',
            'power': null,
          },
          {
            'name': '廠外因素',
            'power': '0.2232',
          },
          {
            'name': '變電裝置缺陷',
            'power': '0.2232',
          },
          {
            'name': '外部因素',
            'power': null,
          },
          {
            'name': '未查明降容',
            'power': null,
          },
          {
            'name': '計劃停運',
            'power': null,
          },
          {
            'name': '裝置故障',
            'power': null,
          },
          {
            'name': '限電',
            'power': '0.2232',
          },
        ],
        'ttt': null,
        'equivalentHours': '5.4028',
        'dayPlantUsePower': null,
        'lostPower': {
          'total': '0.8928',
          'lostList': [
            {
              'name': '光伏裝置缺陷',
              'power': '0.2232',
            },
            {
              'name': '其他未查明',
              'power': null,
            },
            {
              'name': '廠外因素',
              'power': '0.2232',
            },
            {
              'name': '變電裝置缺陷',
              'power': '0.2232',
            },
            {
              'name': '外部因素',
              'power': null,
            },
            {
              'name': '未查明降容',
              'power': null,
            },
            {
              'name': '計劃停運',
              'power': null,
            },
            {
              'name': '裝置故障',
              'power': null,
            },
            {
              'name': '限電',
              'power': '0.2232',
            },
          ],
        },
      },
    ];

  

var newArr = [];
    arr.map((item, index) => {
      newArr.push(...item.lostPower.lostList);
    });
    console.log(newArr, 'dddd');
    const a = newArr.filter(one => !one.power);
    var map = {};
    //迴圈查詢
    for (let i = 0; i < a.length; i++) {
      //數組裡的i個元素
      var v = a[i].name;
      
var v1 = a[i].power; //將陣列的i個元素作為map物件的屬性檢視其屬性值 var counts = map[v]; //如果map物件沒有該屬性,則設定該屬性的值為1,有的話在其基礎上再+1 if (counts && map[v1] == null) { map[v] += 1; } else { map[v] = 1; } } console.log(map); var end = []; for (const k in map) {
if (map[k] == arr.length) { end.push(k); } } console.log(end); const endArr = arr.map((item) => { const newItem = item.lostPower.lostList.map(one => { if (end.indexOf(one.name) > -1) { one = null; } return one; }); return newItem; }); console.log(endArr); var endIndex = []; endArr[0].map((item, index) => { if (!item) { endIndex.push(index); } }); console.log(endIndex);