前端手撕代码——手撕flat

news/2024/10/20 6:21:39/
function flatten(arr = [], depth = 1) {let result = [];(function flat(arr, depth) {// forEach 会自动去除数组空位arr.forEach((item) => {// 控制递归深度if (Array.isArray(item) && depth > 0) {// 递归数组flat(item, depth - 1)} else {// 缓存元素result.push(item)}})})(arr, depth);return result;
}// concat() 方法不会更改现有数组,而是返回一个新数组,其中包含已连接数组的值。function flatten2(arr = [], depth = 1) {if(depth <= 0){return arr;}return arr.reduce((curr, item) => curr.concat(Array.isArray(item) ? flatten2(item, depth - 1) : item), []);
}function flatten3(arr = [], depth = 1) {let result = [];(function flat(arr, depth) {for (let item of arr) {if (Array.isArray(item) && depth > 0) {flat(item, depth - 1);} else {// 使用concat 不用 push 可以除去非空元素// 除空元素,添加非 undefined 元素// concat() 方法不会更改现有数组,而是返回一个新数组,其中包含已连接数组的值。result.push(item);}}})(arr, depth);return result;
}const arr = [1, 2, 3, [], [4, 5, [], [4]]];const result = flatten2(arr, 2);
console.log(result);

http://www.ppmy.cn/news/420561.html

相关文章

【Spring Boot学习】Spring Boot的创建和使用

前言&#xff1a; &#x1f49e;&#x1f49e;今天我们开始学习Spring Boot&#xff0c;这里我们会学习到怎么去创建和使用Spring Boot&#xff0c;在这里我们会了解到什么是最为核心的框架之一。 &#x1f49e;&#x1f49e;前路漫漫&#xff0c;希望大家坚持下去&#xff0c;…

Linux Debian Jenkins快速搭建配置并运行

Jenkins安装 参考Debian Jenkins Packageshttps://pkg.origin.jenkins.io/debian-stable/ 加Key curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key | sudo tee \/usr/share/keyrings/jenkins-keyring.asc > /dev/null 加仓库 echo deb [signed-by/u…

php-fpm开启status监控

1.php-fpm.ini增加配置 pm.status_path /4bc020cd40b51db16c85e685b86da43b2.nginx增加本地配置 server {listen 3380;server_name 127.0.0.1;index index.html index.htm index.php;error_page 404 /404.html;location ~ /(4bc020cd40b51db16c85e685b86da43b)${fastcg…

PbootCMS采集-PbootCMS自动采集-PbootCMS免登录发布插件

PbootCMS是一套全新内核且永久开源免费的PHP企业网站开发建设管理系统&#xff0c;是一套高效、简洁、 强悍的可免费商用的PHP CMS源码&#xff0c;能够满足各类企业网站开发建设的需要。但是PBootCMS没有提供文章采集功能&#xff0c;市面上大部分PBootCMS采集插件要写复杂的文…

CMS详解

一、CMS 以获取最短回收停顿时间为目标 场景&#xff1a;目前很大一部分的Java应用集中在互联网网站或者基于浏览器的B/S系统的服务端上&#xff0c;这类应用通常都会较为关注服务的响应速度&#xff0c;希望系统停顿时间尽可能短&#xff0c;以给用户带来良好的交互体验。CM…

监控之美——Prometheus云原生监控

朱政科 读完需要 25分钟 速读仅需 3 分钟 本文摘自于朱政科撰写的《Prometheus 云原生监控&#xff1a;运维与开发实战》&#xff0c;介绍了监控的概念、监控的分类、MDD 理念、Google 四大黄金指标、USE 方法、RED 方法等监控理论。 监控是一门学问&#xff0c;也是一门艺术。…

CMS GC日志详细分析

一 日志分析 以下分析都基于hotspot 1.6.0_26配置如下参数产生的&#xff1a; 配置参数如下&#xff1a; XmsXmx7804M7991296K PermSizeMaxPermSize256M Xmn2926M2996224K Old7804-29264995072K CMSInitiatingOccupancyFraction75 eden2926*8/102340.8M s0s12926/10292.6M Ede…

zabbix 监控 php-fpm

九、zabbix 监控 php-fpm zabbix监控php-fpm主要是通过nginx配置php-fpm的状态输出页面&#xff0c;在正则取值.要nginx能输出php-fpm的状态首先要先修改php-fpm的配置&#xff0c;没有开启nginx是没有法输出php-fpm status。 1、修改文件php-fpm vim /application/php-5.5.…