Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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中将带有字符串的嵌套数组转换为数字?_Javascript_Arrays_Lodash - Fatal编程技术网

如何在JavaScript中将带有字符串的嵌套数组转换为数字?

如何在JavaScript中将带有字符串的嵌套数组转换为数字?,javascript,arrays,lodash,Javascript,Arrays,Lodash,我不知道我的阵法有多深。它可以是: let array = ["1000", "5000", "3000"]; 或: 我想把它们转换成实数。首选的处理程序是lodash。但我很感激每一个解决方案 我尝试的是: let array = array.map(Number); 但这涵盖了一维数组。对嵌套数组使用递归方法 function conv(arr) { // iterate over the array return arr.map(function(v) { // if

我不知道我的阵法有多深。它可以是:

let array = ["1000", "5000", "3000"];
或:

我想把它们转换成实数。首选的处理程序是lodash。但我很感激每一个解决方案

我尝试的是:

let array = array.map(Number);
但这涵盖了一维数组。

对嵌套数组使用递归方法

function conv(arr) {
  // iterate over the array
  return arr.map(function(v) {
    // if the element is an array call the function recursively
    // or parse the number and treat NaN as 0
    return Array.isArray(v) ? conv(v) : Number(v) || 0;
  })
}
const数组=[
["4000", "2000", "1000", ""],
["6000", "7000", "3000"]
];
常数数组1=[“1000”、“5000”、“3000”];
功能转换(arr){
返回arr.map(函数(v){
返回数组.isArray(v)?conv(v):数字(v)| 0;
})
}
log(conv(array));

console.log(conv(array1))
更通用的解决方案是一个版本的
map
,它接受任何函数并在数组或标量上工作:

const maybeMap=fn=>x=>Array.isArray(x)?x、 地图(maybeMap(fn)):fn(x);
常数numberrify=可能地图(编号);
常量数组=[“1000”、[“2000”、“3000”]、“4000”];

log(numberify(数组))请为您的反对票提供更多信息,谢谢!请访问查看如何提问,您将看到我们需要努力和代码来帮助您:寻求调试帮助的问题(“为什么此代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请看:我添加了我的方法。这是我使用lodash作为一个答案发现的一个完全相同的答案。你也可以发现:)@mplungian他不是在寻求调试帮助,所以你引用的部分不适用。问题陈述也非常清楚。使用“const”键而不是其他键背后有什么特殊原因吗?@Bekimbacj,数组不会改变。@PranavCBalan我们知道什么是const声明,我们只是认为这是一种误用-没有人会改变你的数组。:)
function conv(arr) {
  // iterate over the array
  return arr.map(function(v) {
    // if the element is an array call the function recursively
    // or parse the number and treat NaN as 0
    return Array.isArray(v) ? conv(v) : Number(v) || 0;
  })
}