我有一个脚本,提供不同的价格计划名称,看起来像" PRICEPLAN-8"所以相当多的价格计划+价格,但一些价格已经输入了错误的价格。它们应该是单个数字的intregers,但有些已输入,如8.00或3.00所以名称出现为" PRICEPLAN-8.00"这不是理想的。有没有办法在我的脚本中添加一小部分,只给出一个intreger?我无法获得价格。
const ecommerce = {
purchase: {
actionField: {
id: transactionId,
affiliation: 'Selfcare',
revenue: revenue,
},
products: [{
name: "PRICEPLAN-" + price,
id: "PRICEPLAN-" + price,
price: price,
brand: 'Super',
category: category,
quantity: 1,
}]
},
}
答案 0 :(得分:1)
如图所示,输入的值是一个字符串。您可以使用变量前面的unary plus +
将字符串转换为数字。
name: "PRICEPLAN-" + +price,
另一种方法包括一些健全性检查,并敦促用户输入有效值。
答案 1 :(得分:1)
Number()
,而我个人更喜欢这种方式,因为它更具语义性。
name: "PRICEPLAN-" + Number(price),
我发现良好的语义使其他人更容易理解我的代码(对我而言,当我6个月后再回到它时。)
正如其他人所指出的,这不会将你的值强制转换为整数,所以你需要确定你的输入。
答案 2 :(得分:0)
如果你想要Integer值,那么你可以在JS中使用var parseInt()函数
var a = parseInt("10.00")
会将其转换为“10”
基数: 2到36之间的整数,表示上述字符串的基数(数学数字系统中的基数)。为人类常用的十进制数字系统指定10。始终指定此参数以消除读者混淆并保证可预测的行为。
添加基数后,它将确保输出为十进制:
var a = parseInt("010.00", 10)
答案 3 :(得分:0)
要确保拥有Interger,请使用parseInt()
。由于Number()
不会阻止3.11
之类的数字转换为整数。
name: "PRICEPLAN-" + parseInt(price),
使用ES6模板表示法:
name: `PRICEPLAN-${parseInt(price)}`,