javascript - 如何使用 jQuery 将多维字符串数组转换为 float ?

标签 javascript jquery arrays multidimensional-array

我正在返回一个大的 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/

相关文章:

javascript - knockoutjs isvisible refresh after observableArray item has updated

javascript - 如何更新代表相同数据的两个不同的 React 组件实例?

javascript - 两张单独 table 上的 Td 高度

java - 避免循环内使用 toCharArray() 或 arrayCopy 产生冗余

javascript - 使用 utf-8 字符集为 js 提供服务的 Node.js 公共(public)静态文件夹

javascript - 迭代 QuranGlobal JSON 响应

javascript - jQuery - 在页面加载时默认显示第一个 div

javascript - 在 JavaScript 中定义随机化比率

arrays - 创建单个值的数组

c++11 在类定义中为可变大小 std::array 创建数据成员