Очистка функции - PullRequest
       3

Очистка функции

0 голосов
/ 18 октября 2019

Итак, ребята, у меня странный вопрос ... У меня есть этот код:

var valuesForLakewood = (function (m, k) { 
      return m[k] === undefined ? null : m[k]; 
    })(this.lakewood, customerType);
    var valuesForBridgewood = (function (m, k) { 
      return m[k] === undefined ? null : m[k]; 
    })(this.bridgewood, customerType);
    var valuesForRidgewood = (function (m, k) { 
      return m[k] === undefined ? null : m[k]; 
    })(this.ridgewood, customerType);
    lakewoodCost = weekdays * valuesForLakewood[0] 
      + weekends * valuesForLakewood[1];
    bridgewoodCost = weekdays * valuesForBridgewood[0] 
      + weekends * valuesForBridgewood[1];
    ridgewoodCost = weekdays * valuesForRidgewood[0] 
      + weekends * valuesForRidgewood[1];
    var hotel = 
      this.minCost(lakewoodCost, bridgewoodCost, ridgewoodCost);

Мне просто нужно немного почистить. Я повторяю одну и ту же функцию снова и снова, и мне хотелось бы узнать ваше мнение о том, как я могу немного это исправить, уменьшив размер моего кода. есть идеи? Заранее спасибо!

1 Ответ

0 голосов
/ 18 октября 2019

Используйте одну функцию для извлечения значений из объекта, два массива вместо шести автономных переменных, деструктурирование, чтобы сделать операции с общими затратами более понятными, а затем распределите полученный массив в minCost:

const getVal = obj => obj[customerType] === undefined ? null : obj[customerType];
const values = [this.lakewood, this.bridgewood, this.ridgewood].map(getVal);
const costs = values.map(([weekdayCost, weekendCost]) => weekdays * weekdayCost + weekends * weekendCost);
const hotel = this.minCost(...costs);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...