清理javascript数组元素

时间:2018-02-15 12:15:09

标签: javascript html arrays

我有一个脚本,提供不同的价格计划名称,看起来像" 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,    
    }]
},

}

4 个答案:

答案 0 :(得分:1)

如图所示,输入的值是一个字符串。您可以使用变量前面的unary plus +将字符串转换为数字。

name: "PRICEPLAN-" + +price,

另一种方法包括一些健全性检查,并敦促用户输入有效值。

答案 1 :(得分:1)

@Nina Scholz的回答是正确而简洁的。在JavaScript中执行此操作的另一种方式是使用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)}`,