javascript迭代并映射多维数组

javascript迭代并映射多维数组,javascript,arrays,Javascript,Arrays,我想对数组各级的每个值应用一个函数: arr = [[1,2,3],[1,2,3],[[1,2],[1,2]],1,2,3] 例如,将所有值乘以3,并将其映射为与之前相同的格式,以便得到: arr = [[3,6,9],[3,6,9],[[3,6],[3,6]],3,6,9] 最好的办法是什么 我尝试使用递归函数: function mapall(array){ array.map(function(obj){ if (Array.is

我想对数组各级的每个值应用一个函数:

arr = [[1,2,3],[1,2,3],[[1,2],[1,2]],1,2,3]
例如,将所有值乘以3,并将其映射为与之前相同的格式,以便得到:

arr = [[3,6,9],[3,6,9],[[3,6],[3,6]],3,6,9]
最好的办法是什么

我尝试使用递归函数:

function mapall(array){
         array.map(function(obj){
                   if (Array.isArray(obj)===true) { return mapall(obj) }
                   else{ return obj*3 }
                   })
            };
但是当我运行它时,我只是没有定义,所以我一定是做了一些不太正确的事情

有什么想法吗


谢谢

一切正常,但您忘了从
数组.map返回。以下是代码的更清晰版本:

var-arr=[[1,2,3],[1,2,3],[1,2],[1,2]],1,2,3];
函数mapAll(数组){
返回数组.map(函数(项){
返回数组.isArray(项)?mapAll(项):项*3;
});
}

警报(JSON.stringify(mapAll(arr))一切正常,但您忘记从
数组.map返回。以下是代码的更清晰版本:

var-arr=[[1,2,3],[1,2,3],[1,2],[1,2]],1,2,3];
函数mapAll(数组){
返回数组.map(函数(项){
返回数组.isArray(项)?mapAll(项):项*3;
});
}

警报(JSON.stringify(mapAll(arr))版本,带有回调函数,可以根据需要处理数组元素(
el*2
或其他内容)

var-arr=[[1,2,3],[1,2,3],[1,2],[1,2]],1,2,3];
函数mapAll(数组,cb){
对于(变量i=0,len=array.length;ilog(JSON.stringify(res))版本,带有回调函数,可以根据需要处理数组元素(
el*2
或其他内容)

var-arr=[[1,2,3],[1,2,3],[1,2],[1,2]],1,2,3];
函数mapAll(数组,cb){
对于(变量i=0,len=array.length;i