如何从Array转换货币字符串

use*_*128 2 javascript arrays

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

这是尝试过的,

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
Run Code Online (Sandbox Code Playgroud)

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

演示链接

Mri*_*jay 6

问题是你的阵列中有非法字符.通过包装让他们喜欢字符串''.

它像波纹管一样

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)
Run Code Online (Sandbox Code Playgroud)

DEMO

注意: -.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)
Run Code Online (Sandbox Code Playgroud)

DEMO