Javascript 如何使用jQuery将多维字符串数组转换为浮点?
我返回一个大的JSON对象,特定部分中的每个元素都是一个字符串。我需要能够将所有这些转换为浮动 阵列当前的状态: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"],
[
["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)代码>。我添加了另一个通用解决方案