pu sh результат функции в пустой массив - PullRequest
0 голосов
/ 01 марта 2020

У меня есть массив счетов и пустой массив для советов. Я пытаюсь вызвать функцию tipcalculator в пределах для l oop, чтобы я мог вычислить чаевые каждого из купюр в массиве купюр, сохранить его в пустой массив подсказок. Возможно ли это сделать?
Спасибо

var bills = [123,145,12,44];
var tips = [];

function calculateTips(bill){
  let tip;
  if(bill<10){
    tip = .2;
  }

  if(bill>=10 && bill <20){
    tip = .10;
  } else {
    tip = 0.1;
  }

  return tip * bill;

  for(var i=0; i<bills.length; i++){ 
    var temp = calculateTips(bills[i]);
    tips.push(temp);
  }
};

Ответы [ 2 ]

0 голосов
/ 02 марта 2020

Нет разницы между tip=.10 и tip=0.1. И вы можете значительно сократить свой сценарий, см. Ниже.

const calculateTips=bill=>((bill>=10?.1:.2)*bill).toFixed(2); 
var bills = [123,145,12,44,8];

let tips=bills.map(calculateTips);
console.log(tips);

Интересный факт: Ваша формула приводит к более высоким советам за 8 $, чем за 12 $.

0 голосов
/ 01 марта 2020

Ваш l oop должен быть вне функции. Как документация гласит :

Оператор return завершает выполнение функции и указывает значение, которое будет возвращено вызывающей функции.

var bills = [123,145,12,44];
var tips = [];

function calculateTips(bill){
  let tip;
  
  // Since the bill will only fall into one of your tests
  // use else if, rather than an if followed by another if
  if(bill < 10){
    tip = .2;
  } else if(bill >= 10 && bill < 20){
    tip = .10;
  } else {
    tip = 0.1;
  }

  // once a function reaches a return statement
  // it will return the specified value (if any)
  // and then stop processing the function.
  return tip * bill;
}

for(var i=0; i<bills.length; i++){ 
  var temp = calculateTips(bills[i]);
  tips.push(temp);
}

console.log(tips);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...