javascript - 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
}
解决方案
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]}`)
}