Skip to content
登录后刷题更便捷

js 如何实现数组扁平化?

难度:
js
// 这一种方法通过递归来实现,当元素为数组时递归调用,兼容性好
function flattenArray(array) {
  if (!Array.isArray(array)) return;

  let result = [];

  result = array.reduce(function (pre, item) {
    // 判断元素是否为数组,如果为数组则递归调用,如果不是则加入结果数组中
    return pre.concat(Array.isArray(item) ? flattenArray(item) : item);
  }, []);

  return result;
}

//使用递归的形式进行数组打平
function flatArray(arr) {
  let result = [];
  function flat(arr) {
    arr.forEach((element) => {
      if (Array.isArray(element)) {
        flat(element);
      } else {
        result.push(element);
      }
    });
  }

  flat(arr);
  return result;
}

// 这一种方法是利用了 toString 方法,它的一个缺点是改变了元素的类型,只适合于数组中元素都是整数的情况
function flattenArray(array) {
  return array
    .toString()
    .split(",")
    .map(function (item) {
      return JSON.parse(item);
    });
}
详细资料可以参考:

内容仅供参考,难免有不恰当的地方,如果有问题欢迎及时反馈
部分内容来自网络,如果不慎侵犯您的权益,请联系我们,以便及时删除侵权内容