Синтаксис функции стрелки:
Отсутствует первый =
|var, const, let| identifier = (@param1, ...@paramN) => {...
...
return result;
}
const taxCalculator = (price, state) => {...
state
, уже объявленный как второй параметр - - удалите let
, чтобы сделать его действительным - удалите все выражение, потому что оно бесполезно:
let state = 'NY' || 'NJ';
Оператор if/else
уже сортирует, если state
равно 'NY'
или нет. Выражение выше даже не определяет, не изменяет и т. Д. c. state
вообще.
Демо
Примечание: Подробности прокомментированы в демоверсии
/*
= Two ternaries:
- if state is 'NY' [?] then tax is 1.04
[:] if state is 'NJ' [?] then tax is 1.06625
[:] otherwise tax is nothing
- if tax is nothing [?] then return a message
[:] otherwise return the product of price and tax as a
String prefixed by '$' and truncated to 2 decicimals.
*/
const taxCalculator = (price, state) => {
let tax = state === 'NY' ? 1.04 : state === 'NJ' ? 1.06625 : null;
return tax === null ? `${state} not recognized` : '$' + (price * tax).toFixed(2);
}
console.log(taxCalculator(5.29, 'NJ'));
console.log(taxCalculator(5.29, 'CA'));
console.log(taxCalculator(5.29, 'NY'));