Функция Javascript / неопределенная ошибка - расчет чаевых - PullRequest
0 голосов
/ 05 февраля 2019

При изучении JavaScript и попытке решить сложный вопрос мой код продолжает выводить «неопределенное значение».

Мой код:

function paidAmount(bill){
var tipPercent
if (bill < 50){
    tipPercent = 0.20;
}
else if (bill >= 50 && bill <=200){
    tipPercent = 0.15;
}
else{
    tipPercent = 0.10;
}
return bill * tipPercent;
}

var tip1 = console.log(paidAmount(124));
var tip2 = console.log(paidAmount(48));
var tip3 = console.log(paidAmount(268));

var tipTotal = [tip1, tip2, tip3];

console.log(tipTotal);

Вывод:

18.599999999999998
9.600000000000001
26.8
(3) [undefined, undefined, undefined]

Ответы [ 3 ]

0 голосов
/ 05 февраля 2019

console.log возвращает неопределенное значение.Для получения дополнительной информации см. Приведенные ниже спецификации.

Ссылка спецификации консоли пространства имен

Изображение спецификации консоли Namspace

Спецификация регистратора

Кроме того, в вашем примере вам не нужно сохранять результаты в переменных tip1, tip2, tip3.

Вместо этого вы можете напрямую вызывать paidAmount внутриconsole.log:

console.log(paidAmount(124), paidAmount(48), paidAmount(268));
0 голосов
/ 05 февраля 2019

[console.log(tip1),console.log(tip2),...] это неправильно , но вы можете попробовать другой способ:

function paidAmount(bill) {
  var tipTotal = [] ;
  var tipPercent ;

  for (value of bill) {
    tipPercent = (value < 50 ) ? 0.20 : ( ( value >= 50 && value <= 200) ? 0.15 : 0.10 ) ;
    tipTotal.push( value * tipPercent ) ;
  }

  return tipTotal ;
}

console.log( paidAmount([124, 48, 268]) );
0 голосов
/ 05 февраля 2019

Нельзя назначать значения, которые находятся внутри console.log.Сделай их отдельными

function paidAmount(bill){
var tipPercent
if (bill < 50){
    tipPercent = 0.20;
}
else if (bill >= 50 && bill <=200){
    tipPercent = 0.15;
}
else{
    tipPercent = 0.10;
}
return bill * tipPercent;
}


var tip1 = paidAmount(124);
var tip2 = paidAmount(48);
var tip3 = paidAmount(268);
console.log(paidAmount(124));
console.log(paidAmount(268));
console.log(paidAmount(48));
var tipTotal = [tip1, tip2, tip3];

console.log(tipTotal);
...