多维数组转为一维数组
转成字符串后转成数组
let tempArr = [1,[2,3],[4,5,[6,7]]]; let result_str1 = tempArr.join(',').split(','); console.log(result_str1); // ["1", "2", "3", "4", "5", "6", "7"]
缺点: 如果数组中的各个项是number,将不可避免的转为字符串。
改进:
使用了map进行再次遍历。
这种情况只适用于数组中各个项都是number类型或string类型的情况。
function unid(arr){ let result_str1 = arr.join(',').split(','); let result_number = result_str1.map(item=>{ return Number(item); }); return result_number; } console.log(unid(tempArr)); // [1, 2, 3, 4, 5, 6, 7]
递归
let result = [], tempArr5 = ['1',2,[3,4,[5,6]],7]; function unid1(arr){ for(let item of arr){ if(Object.prototype.toString.call(item).slice(8,-1)==='Array'{ unid1(item); }else{ result.push(item); } } return result; } console.log(unid1(tempArr5)); // ["1", 2, 3, 4, 5, 6, 7]

浙公网安备 33010602011771号