максимальное значение get, interable - рефакторинг javascript - PullRequest
0 голосов
/ 03 апреля 2019

Как получить более эффективное максимальное значение ?? Если данных два или три, или если данных больше нет, как я могу повторить их?

Я написал его с кодом ниже, но похоже, что у меня есть лучший код.

https://jsfiddle.net/ipadorusa/84epaz21/4/

let data = [
  [
    [
      {'20': 2400,'21': 3000,'22': 3250,'23': 3500,'24': 3750,'25': 4000,'26': 4250,'27': 4500,'28': 4750,'29': 5000,'30': 5250,'31': 5500,'32': 5750,'33': 6000,'34': 6250,'35': 6500,'36': 6750,'37': 7000,'38': 7250,'39': 7500,'40': 7750,'41': 8000,'42': 8250,'43': 8500,'44': 8750,'45': 9000,'46': 9250,'47': 9500,'48': 9750,'49': 10000,'50': 10250},
      {'20': 2310,'21': 2500,'22': 2700,'23': 2900,'24': 2950,'25': 3300,'26': 3500,'27': 3700,'28': 3900,'29': 4100,'30': 4300,'31': 4500,'32': 4700,'33': 4900,'34': 5100,'35': 5300,'36': 5500,'37': 5700,'38': 5900,'39': 6100,'40': 6300,'41': 6500,'42': 6700,'43': 6900,'44': 7100,'45': 7300,'46': 7500,'47': 7700,'48': 7900,'49': 8100,'50': 8300},
      {'20': 1900,'21': 2000,'22': 2200,'23': 2400,'24': 2600,'25': 2800,'26': 3000,'27': 3200,'28': 3400,'29': 3600,'30': 3800,'31': 4000,'32': 4200,'33': 4400,'34': 4600,'35': 4800,'36': 5000,'37': 5200,'38': 5400,'39': 5600,'40': 5800,'41': 6000,'42': 6200,'43': 6400,'44': 6600,'45': 6800,'46': 7000,'47': 7200,'48': 7400,'49': 7600,'50': 7800}
    ],
    [
      "2017","2016","2015"
    ]
  ]
];
// let maxData = [];
// let keys = Object.keys(data[0][0][0])
// let totalArry = [],idx =0;

// data[0][0].forEach(function (d, i) {
//   return maxData[i] = keys.map(function (key) {
//     totalArry[idx] = d[key];
//     idx ++;
//   })
// })
// console.log(totalArry)

let totalArry = [...Object.values(data[0][0][0]), ...Object.values(data[0][0][1]), ...Object.values(data[0][0][2])]
let maxValue = Math.max(...totalArry)

// если данные 2

if(data[0].length === 2) {
            let totalArry = [...Object.values(data[0][0]),...Object.values(data[0][1])];
            maxData = Math.max(...totalArry);
        }else if(data[0].length === 3) {
            let totalArry = [...Object.values(data[0][0]),...Object.values(data[0][1]),...Object.values(data[0][2])];
            maxData = Math.max(...totalArry);
        }
        log(maxData)
...