我正在返回一个大的 JSON 对象,特定部分中的每个元素都是一个字符串。我需要能够将所有这些转换为 float 。
数组当前是怎样的:
[
["1402408800","0.0"],
["1402408800","0.0"],
["1402408800","0.0"],
]
转换后需要如何:
[
[1402408800,0.0],
[1402408800,0.0],
[1402408800,0.0],
]
我可以用 v.PriceHistory
引用这个数组,所以我尝试了以下操作:
var newArr = [];
for (var i = 0; i < v.PriceHistory.length; i++) {
parseFloat(v.PriceHistory[i]);
newArr += v.PriceHistory[i];
}
尽管如此,上面只是将其全部作为单个数组返回,而不是返回其原始格式。
尝试了一些东西并在网上看了看,但是没有关于转换多维数组的内容。
最佳答案
因为您已经在使用 jQuery,所以您可以使用 map()更改数组中的所有元素:
var a = [
["1402408800","0.0"],
["1402408800","0.0"],
["1402408800","0.0"],
];
a = a.map(function(elem) {
return elem.map(function(elem2) {
return parseFloat(elem2);
});
});
这是一个适用于任何 n 维数组的完全通用的函数:
(function(elem) {
var callee = arguments.callee;
return elem instanceof Array ? elem.map(function(elem2) { return callee(elem2); })
: parseFloat(elem);
})
(["1", "2", ["10", "20", ["100", "200"], "30"]]);
如果您复制并粘贴到控制台,您将看到输出:
[1, 2, [10, 20, [100, 200], 30]]
关于javascript - 如何使用 jQuery 将多维字符串数组转换为 float ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25987973/