[Intermediate Algorithm] - Steamroller
2024-08-31 02:23:58
题目
对嵌套的数组进行扁平化处理。你必须考虑到不同层级的嵌套。
提示
测试用例
steamroller([[["a"]], [["b"]]])
应该返回 ["a", "b"]。steamroller([1, [2], [3, [[4]]]])
应该返回 [1, 2, 3, 4]。steamroller([1, [], [3, [[4]]]])
应该返回 [1, 3, 4]。steamroller([1, {}, [3, [[4]]]])
应该返回 [1, {}, 3, 4]。
分析思路
分析数组元素要一层层剥离,就是一个递归的思想。
代码
function steamroller(arr) {
// I'm a steamroller, baby
var newArr = [];
for (var i = 0; i < arr.length; i++) {
if (Array.isArray(arr[i]))
//steamroller(arr[i]);
newArr = newArr.concat(steamroller(arr[i]));
else
newArr.push(arr[i]);
}
return newArr;
}
steamroller([1, [2], [3, [[4]]]]);
最新文章
- 【Linux】解决Wesnoth中文乱码问题
- Application中的路径
- JVM 常用配置
- random模块使用
- PHP问题Parse error: syntax error, unexpected end of file in
- Uva10290 - {Sum+=i++} to Reach N
- 项目管理实践 -- 健身小管家(Fitness housekeeper)的管理(2)
- python 爬取w3shcool的JQuery的课程并且保存到本地
- Vue 组件之 Router
- 确保 PHP 应用程序的安全 -- 不能违反的四条安全规则
- C#处理json实战
- vue 路由 及 跳转传递参数的总结
- 【译】第三篇 SQL Server安全主体和安全对象
- Hadoop 系列(三)Java API
- 什么是Satoshi?和比特币中本聪有什么关系?
- docker link 过时不再用了?那容器互联、服务发现怎么办?
- EntityFramework 常见用法汇总
- HIDU 2094
- 北京Uber优步司机奖励政策(9月28日~10月4日)
- MySQL Binlog解析(2)