我正在尝试查找此人是否需要支付运输费用。
我所做的是将邮政编码分为数字和字母。接下来,我检查输入是否在1000和2000之间以及AA和BB之间。
问题::当我输入邮政编码1000AA或2000BB或两者之间的内容时,即使if语句正确,我也总是会得到else答案。
var sendingCost = 15;
var city = prompt("What city do you live in?");
var postalCode = prompt("What is your postal code?");
var postalCodeC = postalCode.slice(0, 3);
var postalCodeL = postalCode.slice(4, 5);
if (city == 'Amsterdam' && postalCodeC >= 1000 && postalCodeC <= 2000 && postalCodeL >= 'AA' && postalCodeL <= 'BB') {
alert('There is no sending cost')
} else {
alert('The sending cost is €15.')
};
答案 0 :(得分:0)
尝试一下
var postcodec = +postcode.slice(0, 4);
var postcodeL = postcode.slice(4, 6);
答案 1 :(得分:0)
正如@Ivar所述,我认为您不了解slice函数的工作方式。第一个参数应该是开始位置,第二个参数应该是结束位置。因此,如果您只想选择前4个数字,然后选择2个字母,则应使用:
let postcode = "1500BD";
//Also, simply using slice will return a string, thus, you may want to convert it using Number();
let num = Number(postcode.slice(0, 4));
let letters = postcode.slice(4);
答案 2 :(得分:0)
您的slice()
未使用邮政编码的全部四个数字。而是使用以下postalCode.slice(0, 4)
。
看看有关slice
的{{3}}。
在下面的工作代码段中,还请注意以下三行。
var postalCodeC = Number(postalCode.slice(0, 4));
// converts the alphanumeric value from prompt to a number for better comparison.
var postalCodeL = postalCode.slice(-2).toUpperCase();
// converts the letters of the postal code to CAPS, this way Aa, AA or aa will be valid too.
var correctCity = city.toLowerCase() === 'amsterdam';
// the same here, convert city to lowercase letters and compare the input to 'amsterdam'
var sendingCost = 15;
var city = prompt("What city do you live in?");
var postalCode = prompt("What is your postal code?");
var postalCodeC = Number(postalCode.slice(0, 4));
var postalCodeL = postalCode.slice(-2).toUpperCase();
var correctCity = city.toLowerCase() === 'amsterdam';
var withinPostalArea = postalCodeC >= 1000 && postalCodeC <= 2000 && postalCodeL >= 'AA' && postalCodeL <= 'BB';
console.log(postalCodeC);
console.log(postalCodeL);
if (correctCity && withinPostalArea) {
alert('There is no sending cost');
} else {
alert('The sending cost is €' + sendingCost);
};
注意:为了帮助您调试这些问题。 console.log()
输出以检查变量的值,并查看它是否是您期望的值。