如何从数组转换货币字符串

How to convert currency Strings from Array

本文关键字:货币 字符串 转换 数组      更新时间:2023-09-26

我有一个数组,其中包含数组列表,值以"美元"为单位。我需要从该列表中获取最高价格和最低价格。

这就是已经尝试过的,

var _array = [$1.09,$3.07,$2.223];
var number = Number(_array.replace(/[^0-9'.]+/g,""));
a= Math.max.apply(Math,number); // $3
b= Math.min.apply(Math,number); // $1

但它不起作用,任何人都可以帮我。

演示链接

问题是你的数组中有非法字符。通过包裹''让它们像绳子一样.

像风箱一样做

var _array = ['$1.09','$3.07','$2.223'];
var numbers = _array.map(function(curr){
    return Number(curr.replace(/[^0-9'.]+/g,""))
})
a= Math.max.apply(Math,numbers); // 3
b= Math.min.apply(Math,numbers); // 1
console.log(a,b)

演示

注意:- .map函数在IE8上不起作用,因此您可以在那里使用for循环。像波纹管

var _array = ['$1.09','$3.07','$2.223'];
var numbers = [];
for(var i=0;i<_array.length;i++){
    numbers.push(_array[i].replace(/[^0-9'.]+/g,""));
}
a= Math.max.apply(Math,numbers); // 3
b= Math.min.apply(Math,numbers); // 1
console.log(a,b)

演示

如果您更正列表数组中的错误,这可能很简单 排序是你的朋友

var _array = ["$1.09", "$3.07", "$2.223"];
_array.sort(function(a, b) {
    return Number(a.replace(/[^0-9'.]+/g, "")) - Number(b.replace(/[^0-9'.]+/g, ""));
});
console.log(_array[0], "   ", _array[_array.length - 1]);

打开浏览器检查器并运行上述代码。

感谢@Meze的贡献,使 10.01 比 2 或类似的东西高