Javascript 仅展平阵列的第一层

Javascript 仅展平阵列的第一层,javascript,functional-programming,Javascript,Functional Programming,我非常努力地使用函数编程创建自己的展平函数。我有它所有的工作,除了出于某种原因假是不包括在答案中。我尝试将其作为答案输入,它适用于除以下情况之外的所有情况: flatten([[[1,2,3]]]) // => [[1,2,3]] 相反,我的代码输出: flatten([[[1,2,3]]]) // => [1,2,3] 令人沮丧的是,我认为我的答案比默认答案更有意义。但无论如何,我还是想解决这个问题。我所面临的挑战是,我已经构建了一些非常复杂的东西,在不破坏整个结构和需要重构所

我非常努力地使用函数编程创建自己的展平函数。我有它所有的工作,除了出于某种原因假是不包括在答案中。我尝试将其作为答案输入,它适用于除以下情况之外的所有情况:

flatten([[[1,2,3]]]) // => [[1,2,3]]
相反,我的代码输出:

flatten([[[1,2,3]]]) // => [1,2,3]
令人沮丧的是,我认为我的答案比默认答案更有意义。但无论如何,我还是想解决这个问题。我所面临的挑战是,我已经构建了一些非常复杂的东西,在不破坏整个结构和需要重构所有东西的情况下很难进行修改。我想为上述特殊情况创建一个函数,但不确定如何在不中断当前结构的情况下完成。如何实现此方法

这类东西上的所有其他线程都处理numpy,我找不到任何与Javascript相关的东西。Kthnx

性感代码:


只是一个评论,但我需要空间:

假设forEach函数类似于:

function forEach(arr, fn) {
  for (var i=0, iLen=arr.length; i<iLen; i++) {
    if (arr.hasOwnProperty(i)) {
      fn(arr[i], i, arr);
    }
  }
}
这似乎是你想要的。还是我误读了这个问题?

forEach的定义在哪里?
function forEach(arr, fn) {
  for (var i=0, iLen=arr.length; i<iLen; i++) {
    if (arr.hasOwnProperty(i)) {
      fn(arr[i], i, arr);
    }
  }
}
flatten([[[1,2,3]]]) // => [[1,2,3]]