JS中递归函数的理解及展开运算符在递归种的运用理解
<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><title>递归函数</title>
</head>
<body>
<script>const list = ["你好", "吃饭了吗",["好",[["abc"]]]]console.log(list)const a1 = []function oneArray(array){for (const arrayElement of array) {if (arrayElement instanceof Array){oneArray(arrayElement)continue}a1.push(arrayElement)}}oneArray(list)console.log(a1)function oneArray1(array){const a2 = []function _oneArray(array){for (const arrayElement of array) {if (arrayElement instanceof Array){_oneArray(arrayElement)continue}a2.push(arrayElement)}}_oneArray(array)return a2}console.log(oneArray1(list))function oneArray2(array){const a3 = []for (const arrayElement of array) {if (arrayElement instanceof Array){a3.push(...oneArray2(arrayElement))continue}a3.push(arrayElement)}return a3}console.log(oneArray2(list))</script>
</body>
</html>
第一种方法:

第二种方法:
类似第一种方法,加了个函数的壳子
第三种方法:




这个递归中 ...flatten(element)可以理解为是一个展开运算符加一个数组,只不过不断递归下去递归上来的数组。
相关文章:
JS中递归函数的理解及展开运算符在递归种的运用理解
<!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><title>递归函数</title> </head> <body> <script>const list ["你好", "吃饭了吗",["好",[[&qu…...
人工智能学习用的电脑安装cuda、torch、conda等软件,版本的选择以及多版本切换
接触人工智能的学习三个月了,每天与各种安装包作斗争,缺少依赖包、版本高了、版本低了、不兼容了、系统做一半从头再来了。。。这些都是常态。三个月把单位几台电脑折腾了不下几十次安装,是时候总结一下踩过的坑和积累的经验了。 以一个典型的…...
提高身份证 OCR 识别 API 接口的准确性的方法
身份证OCR识别API接口能够快速、准确地识别并提取身份证上的文字信息,包括姓名、性别、民族、出生日期、住址、身份证号、签发机关、有效期限等关键内容,将其转化为计算机可处理的结构化数据,从而实现身份证信息的自动化录入和处理࿰…...
PHP面向对象
在 PHP 中,面向对象编程(Object-Oriented Programming,简称 OOP)是一种编程范式,它使用“对象”来组织和设计代码。对象是类的实例,类是定义对象特征和行为的蓝图。面向对象编程的主要目标是提高代码的可重…...
Tomcat新手成长之路:安装部署优化全解析(下)
接上篇《Tomcat新手成长之路:安装部署优化全解析(上)》: link 文章目录 7.应用部署7.1.上下文7.2.启动时进行部署7.3.动态应用部署 8.Tomcat 类加载机制8.1.简介8.2.类加载器定义8.3.XML解析器和 Java 9.JMS监控9.1.简介9.2.启用 JMX 远程监…...
GPT 1到4代的演进笔记
1. GPT-1 标题是 Improving Language Understanding by Generative Pre-Training. 发表于 2018.02, 比 bert(发布于 2018.10) 早了半年. 1.1 动机 困难:NLU 任务是多样的, 有 {textual entailment, question answering, semantic similarity assessment, document classifica…...
vitepress组件库文档项目 markdown语法大全(修正版)
#上次总结的 有些语法是用在markdown文档中的 使用到vitepress项目中有些语法可能有出入 于是我再总结一版 vitepress项目中的markdown语法大全 在阅读本章节之前,请确保你已经对 Markdown 有所了解。如果你还不了解 Markdown ,请先学习一些Markdown 教…...
Vue3技术开发,使用纯CSS3动手制作一个3D环绕的相册展示效果,支持传入任意图片.3D轮播相册的组件
主要讲述封装一个3D轮播相册的组件,效果图如下,仅仅传入一个图片的数组即可,效果如下: 使用Vue3技术开发,支持传入任意张数的图片。 使用方法 <template><Swiper :list"list" /> </templat…...
LeetCode 力扣 热题 100道(十五)搜索插入位置(C++)
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 代码如下所示: class Solution { public:int searchIns…...
【035】基于51单片机俄罗斯方块游戏机【Proteus仿真+Keil程序+报告+原理图】
☆、设计硬件组成:51单片机最小系统LCD12864液晶显示按键控制。 1、设计采用STC89C52、AT89C52、AT89S52作为主控芯片,采用LCD12864液晶作为显示,大屏显示就是刺激; 2、游戏设置十个关卡,每个关卡累计99分即可进入下…...
NAT traversal 原理 | TCP / UDP/ P2P
注:本文为 “NAT traversal ”相关的几篇文章合辑。 未整理去重。 NAT 穿越技术原理 Li_yy123 于 2020-12-08 18:54:26 发布 一、NAT 由来 为了解决全球公有 IPv4 的稀缺,提出了 NAT 技术。NAT 是 Network Address Translation 网络地址转换的缩写。 …...
如何成长为一名工程技术经理
https://medium.com/srivatsan-sridharan/how-to-grow-as-an-engineering-manager-687cad0bcac7 作为一名工程技术经理,你可能已经积累了丰富的团队管理经验,并展示了出色的项目管理、优先级管理和员工指导能力。然而,尽管如此,你…...
GEE开发之下载海拔、坡度、坡向数据
GEE开发之加载海拔、坡度、坡向数据 方法一:加载elevation、slope、aspect和hillshade数据方法二:加载elevation、slope、aspect数据 前言:根据矢量图加载海拔、坡度、坡向和山体阴影。 方法一:加载elevation、slope、aspect和hil…...
gozero项目迁移与新服务器环境配置,包含服务器安装包括go版本,Nginx,项目配置包括Mysql,redis,rabbit,域名
迁移 **GoZero** 项目到新服务器并配置相关环境涉及多个步骤。以下是一个系统化的指南,涵盖服务器环境安装、数据库和缓存配置、项目部署以及域名绑定。 ### 步骤概述 1. **服务器环境配置** - 安装 Go 语言环境 - 安装 Nginx - 安装 MySQL 和 Redis -…...
Scala正则表达式全面教程
一、正则表达式概述 正则表达式(Regular Expression,简称RegEx)是一种用于字符串搜索和操作的强大工具,它使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在Scala中,正则表达式通过scala.util.matching.…...
伺服电机为什么会变慢?
在现代工业自动化和控制系统中,伺服电机因其高效性和精确的控制能力而被广泛应用于各类机器和设备。然而,在实际使用中,有时用户会发现伺服电机的运行速度出现了下降的现象。这一变化不仅会影响生产效率,还可能对设备的安全性和可…...
61 基于单片机的小车雷达避障及阈值可调
所有仿真详情导航: PROTEUS专栏说明-CSDN博客 目录 一、主要功能 二、硬件资源 三、主程序编程 四、资源下载 一、主要功能 基于51单片机,采用超声波传感器检测距离,通过LCD1602显示屏显示,三个按键,第一个按键是…...
微信小程序之手机归属地查询
微信小程序之手机归属地查询 需求描述 API申请和小程序设置 API申请 第一步:完整账号注册 我们需要来到如下网站,注册账号:万维易源 第二步:账号注册完成以后,点击右上角的控制台信息。 第三步:在控制…...
ElementUI 问题清单
1、form 下面只有一个 input 时回车键刷新页面 原因是触发了表单默认的提交行为,给el-form 加上submit.native.prevent就行了。 <el-form inline submit.native.prevent><el-form-item label"订单号"><el-inputv-model"query.order…...
DVWA靶场——XSS(Stored)
一,Stored XSS 漏洞详解 存储型跨站脚本攻击(Stored XSS,或称为 Persistent XSS) 是一种常见的跨站脚本攻击(XSS)类型,它通过将恶意脚本(通常是 JavaScript 代码)直接存储…...
RocketMQ延迟消息机制
两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数,对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后…...
Zustand 状态管理库:极简而强大的解决方案
Zustand 是一个轻量级、快速和可扩展的状态管理库,特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...
Unity3D中Gfx.WaitForPresent优化方案
前言 在Unity中,Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染(即CPU被阻塞),这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案: 对惹,这里有一个游戏开发交流小组&…...
UDP(Echoserver)
网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...
Axios请求超时重发机制
Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式: 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...
SpringTask-03.入门案例
一.入门案例 启动类: package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...
GitHub 趋势日报 (2025年06月06日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 590 cognee 551 onlook 399 project-based-learning 348 build-your-own-x 320 ne…...
免费数学几何作图web平台
光锐软件免费数学工具,maths,数学制图,数学作图,几何作图,几何,AR开发,AR教育,增强现实,软件公司,XR,MR,VR,虚拟仿真,虚拟现实,混合现实,教育科技产品,职业模拟培训,高保真VR场景,结构互动课件,元宇宙http://xaglare.c…...
ArcPy扩展模块的使用(3)
管理工程项目 arcpy.mp模块允许用户管理布局、地图、报表、文件夹连接、视图等工程项目。例如,可以更新、修复或替换图层数据源,修改图层的符号系统,甚至自动在线执行共享要托管在组织中的工程项。 以下代码展示了如何更新图层的数据源&…...
DeepSeek越强,Kimi越慌?
被DeepSeek吊打的Kimi,还有多少人在用? 去年,月之暗面创始人杨植麟别提有多风光了。90后清华学霸,国产大模型六小虎之一,手握十几亿美金的融资。旗下的AI助手Kimi烧钱如流水,单月光是投流就花费2个亿。 疯…...
