欢迎访问 生活随笔!

凯发k8官方网

当前位置: 凯发k8官方网 > 前端技术 > javascript >内容正文

javascript

javascript数组扁平化的实现 -凯发k8官方网

发布时间:2024/1/18 javascript 30 豆豆
凯发k8官方网 收集整理的这篇文章主要介绍了 javascript数组扁平化的实现 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

数组扁平化指的是把一个多维数组拆分成一个一维数组。

  • 递归
  • function flattern(arr){let result = [];for(let i = 0, len = arr.length; i < len; i){if(array.isarray(arr[i])){result = result.concat(flattern(arr[i]));} else {result.push(arr[i]);}}return result; }

    递归的方法比较容易想到,也比较容易,但是对于javascript在浏览器中运行需要考虑栈溢出的问题,数组的层次不能太多。

  • reduce
  • function flattern(arr){return arr.reduce(function (prev, item) {return prev.concat(array.isarray(item) ? flattern(item) : item);},[]); }

    使用reduce比较容易,使用现有api能够更好的实现目的。

  • 扩展运算符
  • function flattern(arr){while(arr.some(item => {return array.isarray(item);})){arr = [].concat(...arr);}return arr; }
  • split()和tostring()
  • function flattern(arr){return arr.tostring().split(','); }

    5.flat()

    function flattern(arr){return arr.flat(infinity); }

    flat是es6中提出的新的api能够直接把多维数组转换成一维数组,比reduce更加直接。

  • 正则和json方法共同处理
  • function flattern(arr){let str = json.stringify(arr);str = str.replace(/(\[|\])/g, '');str = '[' str ']';return json.parse(str); }

    使用json的方法将数组字符串化,然后使用正则把[]替换掉,从而得到一个一维数组的字符串形式,再通过parse方法转换,这种方式可以转换比较深层次的多维数组。
    不过对于数组中的数据类型有一些限制,只能支持json支持的数据类型,如果是函数,则不会被正常转换。

    总结

    以上是凯发k8官方网为你收集整理的javascript数组扁平化的实现的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得凯发k8官方网网站内容还不错,欢迎将凯发k8官方网推荐给好友。

    • 上一篇:
    • 下一篇:
    网站地图