首页 > 解决方案 > 2个javascript语句的范围问题

问题描述

我有一个关于将 for 语句的结果插入 If 语句的问题。它说 bill 没有定义,但它是在 for 语句中定义的。我知道这与范围有关。但我对 javascript 编码还是很陌生,所以我想知道如何让它工作”?

代码是:

'use strict';

const bills = [125, 555, 44]

for (var i=0; i< bills.length; i++) {
  let bill = bills[i]
  console.log(bill)
}

if(bill >= 50 && bill<= 300  ) {
  let tip = bill *.15
} else {
  let tip = bill *.20
}

标签: javascriptfor-loopif-statement

解决方案


const bills = [125, 555, 44];

// see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce

const tips = bills.map(bill => bill >= 50 && bill <= 300 ? bill * 0.15 : bill * 0.20);

for(let i = 0; i < bills.length; i++) {
  console.log(`Bill ${bills[i]}, Tip: ${tips[i]}, Total: ${bills[i] + tips[i]}`)
}


推荐阅读