Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用jQuery将多维字符串数组转换为浮点?_Javascript_Jquery_Arrays_Multidimensional Array - Fatal编程技术网

Javascript 如何使用jQuery将多维字符串数组转换为浮点?

Javascript 如何使用jQuery将多维字符串数组转换为浮点?,javascript,jquery,arrays,multidimensional-array,Javascript,Jquery,Arrays,Multidimensional Array,我返回一个大的JSON对象,特定部分中的每个元素都是一个字符串。我需要能够将所有这些转换为浮动 阵列当前的状态: [ ["1402408800","0.0"], ["1402408800","0.0"], ["1402408800","0.0"], ] [ [1402408800,0.0], [1402408800,0.0], [1402408800,0.0], ] 转换后的状态: [ ["1402408800","0.0"],

我返回一个大的JSON对象,特定部分中的每个元素都是一个字符串。我需要能够将所有这些转换为浮动

阵列当前的状态:

[
    ["1402408800","0.0"],
    ["1402408800","0.0"],
    ["1402408800","0.0"],
]
[
    [1402408800,0.0],
    [1402408800,0.0],
    [1402408800,0.0],
]
转换后的状态:

[
    ["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];
}
var newArr=[];
对于(变量i=0;i
尽管如此,上面的代码只是将其作为单个数组返回,而不是返回其原始格式


尝试了一些方法并联机查看,但没有关于转换多维数组的内容。

迭代大对象(文章中的第一个代码段),并将当前数组的第二个元素设置为已解析的值

代码示例(其中l为大对象):

for(变量i=0;i
这个怎么样:

var newArr = [];
for (var i = 0; i < v.PriceHistory.length; i++) {
  newArr[i] = [];
  for (var k = 0; k < v.PriceHistory[i].length; k++) {
  newArr[i].push(parseFloat(Price[i][k]));
  }
}
var newArr=[];
对于(变量i=0;i

这行得通吗?

如果您需要检查数组的每个元素,请选中此复选框,它将对您有所帮助

var yourArray = /*YOUR ARRAY*/;
var newArray = [];
for (var i = 0; i < yourArray.length; i++) {
    var currentArray = yourArray[i];
    for (var j = 0; j < currentArray.length; j++) {
        if(!newArray[i]){
           newArray[i]=[];
        }
        newArray[i][j] = parseFloat(currentArray[j], 10);
    }
}
console.log(newArray);
var yourray=/*yourray*/;
var newArray=[];
for(var i=0;i
由于您已经在使用jQuery,因此可以使用更改数组中的所有元素:

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"]]);
如果复制并粘贴到console,您将看到输出:

[1, 2, [10, 20, [100, 200], 30]]

有点模糊。您能提供一个您试图解释的示例吗?我正在用调用字符串值的
parseFloat
后获得的值替换数组中的字符串值(您在文章的第一个代码段中显示的数组)。(还为您添加了一把小提琴)稍微起作用。仍然将0索引保留为字符串。检查控制台:
0:“1402408800”,1:0
@fizzix抱歉,没有意识到第一个也是字符串。只需复制for循环中的行,并在第二个实例中将1替换为0。获取错误:
uncaughttypeerror:无法将属性“0”设置为undefined
。发生在
newArray[i][j]=parseFloat(yourray[i][j],10)。我添加了另一个通用解决方案