You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修复JavaScript递归函数实现嵌套数组扁平化并换行输出元素

问题修复方案

原代码错误原因

  • 函数名不一致:定义的函数名为date,但递归调用时写的是aa,会直接触发未定义函数报错
  • 多余换行符拼接:每次处理元素时前后都多加了\n,内层数组遍历也额外加了开头的\n,导致最终输出出现大量连续空行、首尾空行
  • 数组判断不严谨:用typeof input == 'object'判断数组不准确,遇到普通对象{}时会逻辑出错,应该用Array.isArray()专门判断数组类型

修复后代码

function flattenToString(arr) {
  const result = []
  for (const item of arr) {
    if (Array.isArray(item)) {
      // 内层数组递归打平后合并结果
      result.push(...flattenToString(item).split('\n'))
    } else {
      // 非数组元素直接存入结果集
      result.push(item)
    }
  }
  // 最后统一用换行符拼接,完全避免多余换行
  return result.join('\n')
}

测试验证

输入let a = [1,2,3,[4,5,6],'abc',['e','f'] ],调用flattenToString(a)即可得到期望输出"1\n2\n3\n4\n5\n6\nabc\ne\nf"。

内容的提问来源于stack exchange,提问作者user16577849

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.09 09:12:03