Как я могу использовать циклы, чтобы найти суммы в массиве? - PullRequest
0 голосов
/ 29 октября 2019

Так что мне нужно использовать цикл, чтобы заполнить массив общей суммой. Общая сумма будет равна потраченной сумме плюс подарочная карта в процентах. Итак,

total = amountSpent + amountSpent*(1+giftCard)

У меня проблемы с получением суммы. Все потраченные и подарочные карты генерируются случайным образом с помощью math.random. Суммы потраченной и подарочной карты находятся в отдельных массивах, при этом сумма потраченных средств находится в диапазоне от 0 до 500, а сумма подарочной карты - от 0 до 50.

 var spent = new Array(5);
 for (var i = 0; i < 5; i++)
 {
      randS = Math.floor(Math.random() * 500);
      spent[i] = randS;
 }

 var gifts = new Array(5);
 for (var i = 0; i < 5; i++)
 {
      randG= Math.floor(Math.random() * 50);
      gifts[i] = randG;
 }

Вот как я заполняюмассивы, использующие цикл for. Теперь я должен создать новый массив и использовать цикл для расчета суммы. Я определил 2 переменные для потраченной и суммы подарочной карты, но я не уверен, что они набирают правильные номера.

 var totals = new Array(5);
 var tSpent = spent;
 var tGifts = gifts;
 for (var i = 0; i < 5; i++)
 {
      totals[i] = tSpent + (1 + (tGifts / 100)) * tSpent;
      totals[i] = totals[i].toFixed(2);
 }

Я знаю, что этот массив является проблемой, так как другие два массива отображают числа нормально. Я также должен преобразовать сумму подарочной карты в десятичную и убедиться, что общая сумма составляет 2 десятичных знака.

Ответы [ 2 ]

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

вы можете написать весь код в одном цикле следующим образом:

var spent=[],gifts=[],totals=[];
for(let i = 0; i < 5; i++){
    spent[i] = Math.floor(Math.random() * 500);
    gifts[i] = Math.floor(Math.random() * 50);
    totals[i] = spent[i] + (1 + gifts[i]/10)*spent[i]
    totals[i] = totals[i].toFixed(2);
}
0 голосов
/ 29 октября 2019

Насколько я могу понять ваши сомнения, я чувствую, что вы все делаете правильно, в вашем коде необходимо внести небольшую поправку.

 var totals = new Array(5);
 var tSpent = spent;
 var tGifts = gifts;
 for (var i = 0; i < 5; i++)
 {
      totals[i] = tSpent[i] + (1 + (tGifts[i] / 100)) * tSpent[i];
      totals[i] = totals[i].toFixed(2);
 }

Кроме того, ваши массивы tSpend и tGiftsВызываете правильные номера, хотя они кажутся избыточными, если вы не запланировали для них что-то позднее в кодеЕсли нет, они просто ссылаются на ваши фактические переменные расходы и подарки.

Если я неправильно понимаю или если в вашем вопросе есть что-то еще, пожалуйста, помогите мне понять это. Рад помочь !!!

...