首页 > 代码库 > FCC 中级算法题 数组扁平化
FCC 中级算法题 数组扁平化
Steamroller
对嵌套的数组进行扁平化处理。你必须考虑到不同层级的嵌套。
Array.isArray()
思路:
(1)遍历arr,如果arr[i]是数组,就重新调用本函数继续循环,然后和新数组连接;
(2)如果不是数组,就直接添加进新数组;
知识点:
(1)Array.concat()方法用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组;
(2)Array.push()方法将一个或多个元素添加到数组的末尾,并返回数组的新长度;
(3)Array.isArray()用于确定传递的值是否是一个 Array
。
代码:
1 function steamroller(arr) { 2 var newArr=[]; 3 for(var i=0;i<arr.length;i++){ 4 if(Array.isArray(arr[i])){ 5 //如果是数组,就重新调用本函数继续循环,然后和新数组连接 6 newArr=newArr.concat(steamroller(arr[i])); 7 }else{ 8 //如果不是数组,就直接添加进新数组 9 newArr.push(arr[i]); 10 } 11 } 12 return newArr; 13 } 14 steamroller([1, [2,222,[22,[2,[2]]]], [3, [[4]]]]);
FCC 中级算法题 数组扁平化
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。