题目

对嵌套的数组进行扁平化处理。你必须考虑到不同层级的嵌套。

提示

Array.isArray()

测试用例

  • 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]]]]);

最新文章

  1. 【Linux】解决Wesnoth中文乱码问题
  2. Application中的路径
  3. JVM 常用配置
  4. random模块使用
  5. PHP问题Parse error: syntax error, unexpected end of file in
  6. Uva10290 - {Sum+=i++} to Reach N
  7. 项目管理实践 -- 健身小管家(Fitness housekeeper)的管理(2)
  8. python 爬取w3shcool的JQuery的课程并且保存到本地
  9. Vue 组件之 Router
  10. 确保 PHP 应用程序的安全 -- 不能违反的四条安全规则
  11. C#处理json实战
  12. vue 路由 及 跳转传递参数的总结
  13. 【译】第三篇 SQL Server安全主体和安全对象
  14. Hadoop 系列(三)Java API
  15. 什么是Satoshi?和比特币中本聪有什么关系?
  16. docker link 过时不再用了?那容器互联、服务发现怎么办?
  17. EntityFramework 常见用法汇总
  18. HIDU 2094
  19. 北京Uber优步司机奖励政策(9月28日~10月4日)
  20. MySQL Binlog解析(2)

热门文章

  1. 【郑轻邀请赛 A】tmk射气球
  2. Git学习总结(3)——代码托管平台简介
  3. C结构体里的冒号
  4. StackOverflow 这么大,它的架构是怎么样的
  5. Android:阻止输入法将图片压缩变形
  6. AngularJS:一行JS代码实现控件验证效果
  7. HDU 3681
  8. pthread_rwlock pthread读写锁
  9. [深入学习C#]输入输出安全性——可变类型形參列表的变化安全性
  10. Organize Your Train part II(hash)