【发布时间】:2014-08-16 07:55:42
【问题描述】:
var flatten = function (array){
// TODO: Program me
var newArray = [];
for(var i = 0; i<array.length; i++) {
newArray.push(array[i]);
}
return newArray;
}
这是除外的结果:
flatten([1,2,3]) // => [1,2,3]
flatten([[1,2,3],["a","b","c"],[1,2,3]]) // => [1,2,3,"a","b","c",1,2,3]
flatten([[[1,2,3]]]) // => [[1,2,3]]
Test result:
Test Passed
Test Passed
Test Failed: Value is not what was expected
- 我在“面向 Web 开发人员的专业 JS”中搜索了一些 heliping 函数,但找不到用于查找数组维数的函数。
【问题讨论】:
-
这是学习递归的好机会
-
只检查内部元素是否为数组
-
我不确定您是如何声称您的第二次测试通过的。除了从一个数组中获取元素并将它们放入另一个数组之外,您的函数实际上并没有做任何事情。没有什么是扁平的。您的输出与输入基本相同。
-
return [].concat.apply([], array); - 是解决方案。谢谢安迪的话题。