我有一個字符串和數字的數組。我需要的所有項目轉換爲數字,即:javascript - 將字符串和數字的數組轉換爲數字數組
var a = ["42.00", 33, 12.02, "30", 10];
皈依:
[42.00, 33, 12.02, 30, 10]
我有一個字符串和數字的數組。我需要的所有項目轉換爲數字,即:javascript - 將字符串和數字的數組轉換爲數字數組
var a = ["42.00", 33, 12.02, "30", 10];
皈依:
[42.00, 33, 12.02, 30, 10]
對於後備compatibily目的:
var a = ["42.00", 33, 12.02, "30", 10];
var out;
if (typeof(Array.prototype.map == 'function')) {
out = a.map(function(el){ return typeof(el) !== 'number' ? parseFloat(el) : el });
}
else {
out = [];
for (var i = 0; i < a.length; ++i) {
out[i] = typeof(a[i]) !== 'number' ? parseFloat(a[i]) : a[i];
}
}
console.log(out);
如果元素已經是一個數字,你會不會解析它,否則它會的。
如果沒有定義.map函數,它將繼續使用常規for循環。這應該做的事,因爲一些瀏覽器不支持某些ECMA函數(如IE9):
var a = ["42.00", 33, 12.02, "30", 10];
var b=new Array();
for(i=0;i<a.length;i++)
b[i]=parseFloat(a[i]);
alert(a);
alert(b);
var a = ["42.00", 33, 12.02, "30", 10];
var b = [];
a.forEach(function(num){
b.push(parseFloat(num));
});
console.log(b);
// [42, 33, 12, 30, 10]
或者添加原型法陣:
Array.prototype.toInt = function (a){
var b = [];
this.forEach(function(num){
b.push(parseFloat(num));
});
return b;
}
var a = ["42.00", 33, 12.02, "30", 10];
console.log(a.toInt());
https://jsfiddle.net/0okLL93m/
我敢肯定,這可以更好地以某種方式寫的,但工作得很好。
真的,有什麼用編寫代碼的完整段落的東西,這個簡單的了?這就是你需要:
var a = ["42.00", 33, 12.02, "30", 10]
a.map(Number) // returns [42, 33, 12.02, 30, 10]
(請注意,在JavaScript中所有數字都是64位浮點,沒有點寫他們明確爲float)
變種B = parseInt函數(A [0]); – Ramkumar 2015-04-01 09:16:17
「我有一個數組的數組」 - 不,你沒有;-) – Magrangs 2015-04-01 09:20:23