vue 封装一个递归 怎么使的方法调用时每次result都为新数组(不是递归的时候)

`

const result = []
export function flatten(arr) {
 for (let i = 0; i < arr.length; i++) {
 const item = arr[i]
 if (arr[i].childNodes) {
 result.push(item)
 flatten(item.childNodes)
 } else {
 result.push(item)
 }
 }
 return result
}

`

阅读 2.1k
2 个回答
export function flatten(arr, result = []) {
  for (let i = 0; i < arr.length; i++) {
    const item = arr[i];
    if (arr[i].childNodes) {
      result.push(item);
      flatten(item.childNodes, result);
    } else {
      result.push(item);
    }
  }
  return result;
}
function flatten(array) {
  var flattend = [];
  (function flat(array) {
    array.forEach(function(el) {
      if (Array.isArray(el)) flat(el);
      else flattend.push(el);
    });
  })(array);
  return flattend;
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题