在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ 幫忙優(yōu)化一下代碼,總覺得自己寫的好麻煩,哪里不太對?

幫忙優(yōu)化一下代碼,總覺得自己寫的好麻煩,哪里不太對?

應(yīng)該一次循環(huán)就能搞定吧

  let MondayTotal = 0;
  MondayTotal = newData.reduce((item, v) => {
    return item + parseFloat(v.Monday);
  }, MondayTotal);

  let TuesdayTotal = 0;
  TuesdayTotal = newData.reduce((item, v) => {
    return item + parseFloat(v.Tuesday);
  }, TuesdayTotal);

  let WednesdayTotal = 0;
  WednesdayTotal = newData.reduce((item, v) => {
    return item + parseFloat(v.Wednesday);
  }, WednesdayTotal);

  let ThursdayTotal = 0;
  ThursdayTotal = newData.reduce((item, v) => {
    return item + parseFloat(v.Thursday);
  }, ThursdayTotal);

  let FridayTotal = 0;
  FridayTotal = newData.reduce((item, v) => {
    return item + parseFloat(v.Friday);
  }, FridayTotal);

  let SaturdayTotal = 0;
  SaturdayTotal = newData.reduce((item, v) => {
    return item + parseFloat(v.Saturday);
  }, SaturdayTotal);

  let SundayTotal = 0;
  SundayTotal = newData.reduce((item, v) => {
    return item + parseFloat(v.Sunday);
  }, SundayTotal);
  
  
  
回答
編輯回答
淡墨

安利一下柯里化

const getTotal = function (list) {
    return function (day) {
        return list.reduce((result, item) => (
            result + parseFloat(item[day])
        ), 0);
    };
}

const getWeekdayTotal = getTotal(newData);

// single day
let mondayTotal = getWeekdayTotal("Monday");
let tuesdayTotal = getWeekdayTotal("Tuesday");

// multiple days
let days = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];
let daysTotal = days.map(getWeekdayTotal);
2018年4月1日 23:35
編輯回答
無標(biāo)題

簡化代碼了,但是性能并沒有提高

2018年5月26日 15:13
編輯回答
墨染殤
const week = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']

const weekdata = week.map((day, idx) => newData.reduce((item, v) => item + parseFloat(v[day]), 0)

后面那塊邏輯是按照你代碼搬過來了,出問題不怪我 :)

2018年6月21日 22:21
編輯回答
裸橙
var newDate = [];
            var weekAry = ['monday', 'tuesday', 'wednesday', 'thursday', 'friday'];
            newDate.reduce(function(pre, v) {
                for(var i = 0, len = weekAry.length; i < length; i++) {
                    if(!pre[weekAry[i]]) pre[weekAry[i]] = 0;
                    pre[weekAry[i]] += parseFloat(v[weekAry[i]]);
                }
                return pre;
            }, {});

沒測試,將就看吧

2017年3月8日 06:07