当前位置: 首页 > news >正文

汕头手机模板建站东营优化公司

汕头手机模板建站,东营优化公司,建设银行临江支行网站,东莞市网络营销推广怎么样文章目录 前言方法一方法二方法三方法四总结后言 前言 hello world欢迎来到前端的新世界 😜当前文章系列专栏:JavaScript 🐱‍👓博主在前端领域还有很多知识和技术需要掌握,正在不断努力填补技术短板。(如果出现错误&a…

文章目录

  • 前言
  • 方法一
  • 方法二
  • 方法三
  • 方法四
  • 总结
  • 后言

前言

hello world欢迎来到前端的新世界


😜当前文章系列专栏:JavaScript
🐱‍👓博主在前端领域还有很多知识和技术需要掌握,正在不断努力填补技术短板。(如果出现错误,感谢大家指出)🌹
💖感谢大家支持!您的观看就是作者创作的动力

方法一

使用递归方法扁平化——性能较差

function flatten(arr) {return arr.reduce((acc, val) => Array.isArray(val) ? acc.concat(flatten(val)) : acc.concat(val), []);
}let multiArr = [1, 2, [3, 4, [5, 6], 7], [8, 9]];
let flatArr = flatten(multiArr);let uniqueArr = [...new Set(flatArr)];let sortedArr = uniqueArr.sort((a, b) => {return a - b});console.log(sortedArr);

这种方法使用了递归来扁平化整个数组,可以处理任意多层的嵌套数组。但是,对于非常大的多维数组,递归方法的性能会很差。


方法二

使用ES6的扩展运算符扁平化——性能较差

let multiArr = [1, 2, [3, 4, [5, 6], 7], [8, 9]];
let flatArr = [].concat(...multiArr);let uniqueArr = [...new Set(flatArr)];let sortedArr = uniqueArr.sort((a, b) => {return a - b});console.log(sortedArr);

这种方法使用了ES6的扩展运算符将多维数组扁平化为一维数组,然后使用Set进行去重。但是,它仍然需要创建一个新的数组,因此对于非常大的多维数组,它的性能也不是很好。


方法三

使用reduce方法扁平化——性能较好

let multiArr = [1, 2, [3, 4, [5, 6], 7], [8, 9]];
let flatArr = multiArr.reduce((acc, val) => {return acc.concat(Array.isArray(val) ? val.flat() : val);
}, []);let uniqueArr = [...new Set(flatArr)];let sortedArr = uniqueArr.sort((a, b) => {return a - b});console.log(sortedArr);

这种方法使用了reduce方法对多层嵌套的数组进行扁平化。由于使用了原生的Array.prototype.flat方法,因此它的性能相对较快。但是,需要注意的是flat方法可能无法在所有环境下使用。


方法四

使用迭代方法扁平化——性能最佳

let multiArr = [1, 2, [3, 4, [5, 6], 7], [8, 9]];
let queue = [...multiArr];
let flatArr = [];while(queue.length > 0) {let node = queue.shift();if(Array.isArray(node)) {queue.unshift(...node);} else if(node !== undefined) {flatArr.push(node);}
}let uniqueArr = [...new Set(flatArr)];let sortedArr = uniqueArr.sort((a, b) => {return a - b});console.log(sortedArr);

这种方法使用了迭代方法扁平化数组,没有使用任何递归,也不需要重新分配内存。这使得它在处理大型多维数组时具有更好的性能。


总结

最优解决方案是使用迭代方法扁平化,因为它具有最好的性能,并且不会产生与内存分配相关的问题。但是,如果您需要兼容一些老的浏览器或运行时环境,您可以使用reduce方法扁平化。如果您不需要考虑性能问题,那么递归方法和扩展运算符也是可行的选项。

后言

创作不易,要是本文章对广大读者有那么一点点帮助 不妨三连支持一下,您的鼓励就是博主创作的动力

http://www.hkea.cn/news/960591/

相关文章:

  • 广州黄埔网站制作百度sem是什么意思
  • 网站流量分析网站网络推广营销网
  • 化妆品网站建设计划书网站维护是什么意思
  • 建设局网站公告宣传推广的形式有哪些
  • 网站基本架构设计的主要步骤什么软件可以排名次
  • 代做毕业设计网站多少钱网站推广交换链接
  • 苹果指争议广告lg广告北京seo公司网站
  • flash网站制作公司能打开各种网站的浏览器下载
  • 网站开发是叫系统吗站长工具seo排名查询
  • 站长之家html模板西安网站seo技术厂家
  • 重庆网站建设 渝seo交流论坛
  • 洛阳市网站建设宁波seo网络推广软件系统
  • 做网站用建站模版好还是定制好百度站点
  • 关注济南网站建设深圳市企业网站seo
  • 安溪县住房和城乡建设网站色盲
  • 合肥做英文网站今日头条国际军事新闻
  • 西安有哪些做网站的公司好邵阳疫情最新消息
  • asia域名的网站竞价广告
  • 怎么注册公司支付宝账号seo求职信息
  • 多语言网站怎么做网络推广平台公司
  • 山东公司注册网站怎样写营销策划方案
  • 河北省香河县建设局网站中国互联网协会
  • 北京丰台区网站建设游戏推广赚佣金的平台
  • 网站没排名怎么办搜索引擎广告优化
  • wordpress内容主题模板网络网站推广选择乐云seo
  • 电子元器件商城网站建设百度开户怎么开
  • 企业网站开发基本流程百度博客收录提交入口
  • 甘特图模板关于网站建设微信营销模式
  • 网站建设的swot分析长尾关键词挖掘精灵
  • 发布自己的做家教的网站网店运营推广登录入口