这有什么错我的应用程序的JavaScript三元运算符?

问题描述 投票:1回答:4

我正在写有提示输入简单的打折应用程序。这个问题在我的三元运算符 - 它不计算newPrice以及表明输入无效。你能告诉我,我做错了什么?

我如果输入错了,我要分配newPrice为空,并提醒“无效数据”

我的代码:

const price = prompt('Please, enter the price:');
const discount = prompt('Please, enter the discount amount:');

const newPrice = ((9999999 > price > 0) && (99 > discount > 0)) ? (price - price * discount / 100) : (null, alert('Invalid data'));
console.log(newPrice)
javascript
4个回答
1
投票

尝试分离出的代码语句

  1. 确保新的价格实际上是空。不undefined。 (根据您的问题)
  2. a > b > c东西不JS AFAIK工作。请重构是语法我在下面或类似的那样。

const price = prompt('Please, enter the price:');
const discount = prompt('Please, enter the discount amount:');

const newPrice = (price && (9999999 > price) && discount && (99 > discount)) ? (price - price * discount / 100) : null;
console.log(newPrice);
if(!newPrice){alert('Invalid data');}

0
投票

首先,将您输入的数字,二是重构你的条件是有效的(你不能有x > y > z IIRC):

const price = parseInt(prompt('Please, enter the price:'));
const discount = parseInt(prompt('Please, enter the discount amount:'));

const newPrice = (((9999999 > price) && price) && ((99 > discount) && discount)) ? (price - price * discount / 100) : (null, alert('Invalid data'));
console.log(newPrice);

0
投票

该提示可以被读取的值作为字符串。将其转换为数字使用parseInt或一元+

const price = parseInt(prompt('Please, enter the price:'));
const discount = parseInt(prompt('Please, enter the discount amount:'));

const newPrice = ((price && price > 0 && price < 9999999) && (discount && discount >0 && discount < 99 )) ? (price - price * discount / 100) : (null, alert('Invalid data'));
console.log(newPrice)

0
投票

这里是由两个方法if-else和三元运算符(?:)这样做的示例。但我会建议与if-else去,如果你有多大的决定要素。

var price = prompt('Please, enter the price:');
var discount = prompt('Please, enter the discount amount:');
var newPrice;
if((price>0 && price < 9999999)&&(discount>0 && discount < 99)){
newPrice=price - (price * discount) / 100;
}else{
newPrice='null';
alert('Invalid data');
}
var newPrice1 = ((9999999 > price && price > 0) && (99 > discount && discount > 0)) ? (price - (price * discount) / 100) : ('null', alert('Invalid data'));
console.log(newPrice);
console.log(newPrice1);
© www.soinside.com 2019 - 2024. All rights reserved.