我在Shopify中使用它的货币切换器,问题是,我正在使用的客户希望每个货币栏都默认(GBP)来围绕它的价格最高的整数,所以458.54美元变成459美元。
我几乎得到了它的工作,除非存在多个var all = $(".money")
.map(function() {
return this.innerHTML;
})
.get();
var all = [all, ","];
var arrayLength = all.length;
for (var i = 0; i < arrayLength; i++) {
//Do something
}
console.log("array:", all);
var regex = all.toString().replace(/[^0-9.]/g, "");
var regex = [regex, ","];
var regexarrayLength = regex.length;
for (var i = 0; i < regexarrayLength; i++) {
//Do something
}
console.log("arrayregex:", regex);
console.log("regex:", regex);
var rounded_currency = Math.round(regex);
console.log("rounded_currency:", rounded_currency);
$("#update").click(function() {
alert(rounded_currency);
});
$(document).ready(function() {
$(".priceUpdate").text(regex);
$(".priceRound").text(rounded_currency);
});
元素,它似乎打破并将它们合并在一起。
JS代码是:
{{1}}
答案 0 :(得分:0)
要达到预期效果,请使用以下选项
将价格数组更改为舍入价格数组,因为正则表达式不是正确的数组,这就是为什么它会抛出NaN
更新了具有JPY值的codepen以进行测试
console.log("array:", all);
var prices = all[0].map(function(num){
return var prices = all[0].map(function(num){
return Math.round(num.replace(/,/g, '').substr(1));
})
console.log(prices)
})
console.log(prices);//rounded prices [6454,6454,454,644,6564454]
Codepen - https://codepen.io/nagasai/pen/VbMZBz?editors=1111
答案 1 :(得分:0)
您可以使用javascript&#39; Math.ceil()函数来舍入到最接近的整数。
例如,使用.money
类循环遍历所有选择器的数组,并首先剥离美元符号。然后调用Math.ceil()。
var all = $(".money").map(function() {
return this.innerHTML;
}).get();
//["$6453.65", "$6453.65", "$453.65", "$643.65", "$6564453.65"]
var rounded = all.map(function(x) {
var numbers = x.replace(/[^0-9]/, '');
return Math.ceil(numbers);
});
//[6454, 6454, 454, 644, 6564454]