最大值get,interable-javascript重构

时间:2019-04-03 02:07:25

标签: operator-keyword spread

如何获得更有效的最大值? 如果数据是两个或三个,或者没有更多数据,该如何重复?

我用下面的代码编写了它,但是看起来我有一些更好的代码。

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)

0 个答案:

没有答案