【DAY46】js的算法(1)

JS 中常用的数据结构有数组、对象、Map、Set、栈、队列、链表、树等。这里列出它们的表示方法和特点:

1.数组:使用方括号 [] 表示,可以存储多个元素,可以通过下标进行访问。数组具有随机访问的特点,但插入和删除一个元素需要移动其他元素,因此效率较低。

const arr=[1,2,3,4,5]

 2.对象:使用花括号 {} 表示,由多个键值对组成,每个键值对之间使用逗号 , 分隔。对象具有基于 key 的访问特点,适用于存储和表示具有明确 key 值的数据。

const obj={name:'Tom',age:18,gender:'Male'}//对象

3.Map:是一种有序的键值对组合,键和值可以是任何类型。可以用Map()构造函数创建Map对象。

const mp=new Map([['name','Tom'],['age',18],['gender','Male']]);//map

4.Set :是一种无序的,唯一的值的集合,值可以是任意类型。可以使用Set()构造函数创建Set对象

const st=new Set([1,2,3,4,5]);//Set

5.栈:后进先出(LIFO)的数据结构。可以通过push()方法压入元素,pop()方法弹出栈顶元素

const stack=[];
stack.push(1);//压入1
stack.push(2);//压入2
const top=stack.pop();//弹出2

6.队列:先进先出(FIFO)的数据结构。可以通过push()方法入队,shift()方法出队。

const queue=[];
queue.push(1);//入队1
queue.push(2);//入队2
const front=queue.shift()//出队1

7.链表:由多个节点组成,每个节点包含一个值和一个指向下一节点的指针。链表没有固定的长度,可以动态增减。相比数组,链表的插入和删除操作效率更高

class Node{
    constructor(val,next=null){
        this.val=val;
        this.next=next;
    }
}

const list=new Node(1,new Node(2,new Node(3)));//链表

8.树:由多个节点组成,每个节点包含一个值和多个指向子树的指针。树的高度和宽度不固定,可以存储复杂的,分层的数据结构。

class TreeNode{
    constructor(val,left=null,right=null){
        this.val=val;
        this.left=left;
        this.right=right;
    }
}

const tree=new TreeNode(1,new TreeNode(2),new TreeNode(3));//树

串:

const str = 'Hello, world!';
const upperStr = str.toUpperCase();
const subStr = str.substring(0, 5);
const arr = str.split(' ');
const newStr = str.replace('world', 'JavaScript');

var reverseString = function(s) {
    var a=[]
    for(let i=s.length-1;i>=0;i--)
    {
        a.push(s[i])
    }
    return a
};

Js语法(字符串)

//从起始位置删除一定长度的字符串

Value.substr(start,length)

//删除从起始位置到终点的所有字符串

Value.substring(start,end)

//将value1中的第一个value2改为value3

Value1.replace(value2,value3)

//将value1中的所有value2改为value3

Value1.replaceAll(value2,value3)

//在指定位置插入

Value.slice(position,insertValue.length,insertValue)

//从指定位置删除指定长度的字符串

Value.substr(start,delLength)

//将字符串转为数组:

Value.split(‘’)

//将数组转置(数组特有功能)

Value.reverse()

//将数组转为字符串:

Value.join(‘’)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/15639.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Packet Tracer - 研究直连路由

Packet Tracer - 研究直连路由 目标 第 1 部分:研究 IPv4 直连路由 第 2 部分:研究 IPv6 直连路由 拓扑图 背景信息 本活动中的网络已配置。 您将登录路由器并使用 show 命令发现并回答以下有关直连路由的问题。 注:用户 EXEC 密码是 c…

通用智能的瓶颈及可能的解决途径

通用智能是指能够在各种不同的任务和环境中灵活地适应和执行任务的智能。通用智能与特定任务的智能相反,后者只能在特定领域或任务中表现出色。通用智能的理论基础是人工智能领域的通用人工智能(AGI)研究,旨在设计出能够像人类一样…

三分钟看懂Python分支循环规范:if elif for while

人生苦短,我用python 分支与循环 条件是分支与循环中最为核心的点, 解决的问题场景是不同的问题有不同的处理逻辑。 当满足单个或者多个条件或者不满足条件进入分支和循环, 这里也就说明这个对相同问题处理执行逻辑依据具体参数动态变化&…

从0搭建Vue3组件库(四): 如何开发一个组件

本篇文章将介绍如何在组件库中开发一个组件,其中包括 如何本地实时调试组件如何让组件库支持全局引入如何在 setup 语法糖下给组件命名如何开发一个组件 目录结构 在packages目录下新建components和utils两个包,其中components就是我们组件存放的位置,而utils包则是存放一些…

史上最全Maven教程(五)

文章目录 🔥Maven聚合案例_搭建dao模块🔥Maven聚合案例_搭建service模块🔥Maven聚合案例_搭建web模块🔥Maven聚合案例_运行项目🔥依赖传递失效及解决方案 🔥Maven聚合案例_搭建dao模块 dao子工程中一般写实…

055:cesium两种方法加载天地影像图

第055个 点击查看专栏目录 本示例的目的是介绍如何在vue+cesium中用两种方法加载天地影像图。一种是利用WebMapTileServiceImageryProvider,另一种是利用UrlTemplateImageryProvider. 直接复制下面的 vue+cesium源代码,操作2分钟即可运行实现效果. 文章目录 示例效果配置方…

面试题30天打卡-day14

1、线程的生命周期是什么,线程有几种状态,什么是上下文切换? 线程通常有五种状态:创建,就绪,运行、阻塞和死亡状态。 新建状态(New):新创建了一个线程对象。就绪状态&am…

controlnet1.1模型和预处理器功能详解(各预处理器出稿对比及对应模型说明)

ControlNet 1.1 与 ControlNet 1.0 具有完全相同的体系结构,ControlNet 1.1 包括所有以前的模型,具有改进的稳健性和结果质量,且增加并细化了多个模型。 命名规范 项目名版本号标识基础模型版本功能名文件后缀名 control 官方总是以control为项目名&…

Go | 一分钟掌握Go | 9 - 通道

作者:Mars酱 声明:本文章由Mars酱编写,部分内容来源于网络,如有疑问请联系本人。 转载:欢迎转载,转载前先请联系我! 前言 在Java中,多线程之间的通信方式有哪些?记得吗&…

【云计算•云原生】3.一小时熟练掌握docker容器

文章目录 docker简介ubuntu下安装dockerkali下安装dockerdocker基本命令docker搭建mysql、nginx、redis容器/镜像打包搭建私有镜像仓库docker网络管理Dockerfile文件docker-compose.yml示例:搭建lamp docker简介 docker是一个开源的应用容器引擎,可以让…

缓存优化----SpringCache

spring cache spring Cache介绍 spring cache是一个框架,实现了基于注解的缓存功能,只需要简单地加一个注解,就能实现缓存功能。 Spring cache提供了一层抽象,底层可以切换不同的cache实现。具体就是通过CacheManager接口来统一不…

解决方案丨票据集中在集团总部处理,如何解决实物票据管理难?

目前越来越多的企业都成立了财务共享中心,通过统一财务中心可以进行集中式、标准化、统一化管理,提升财务运营水平与效率、降低企业的整体运作成本、集团战略发展支撑。 如何确保财务共享中心稳健和高效运营,是很多企业建立共享中心后面的难…

7.参数校验

在controller和service进行前端传参校验&#xff0c;保证存到数据库的数据是正确的 1.引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId></dependency>这里无需…

《程序员面试金典(第6版)》面试题 16.05. 阶乘尾数

题目描述 设计一个算法&#xff0c;算出 n 阶乘有多少个尾随零。 示例 1: 输入: 3输出: 0解释: 3! 6, 尾数中没有零。 示例 2: 输入: 5输出: 1解释: 5! 120, 尾数中有 1 个零 说明: 你算法的时间复杂度应为 O(log n) 。 解题思路与代码 这道题&#xff0c;乍一看很简单…

米哈游新游正式公测!还没上线就已经“爆了”!

米哈游制作的3D冒险主题回合制策略游戏《崩坏&#xff1a;星穹铁道》&#xff0c;在2023年4月26日正式开启全平台公测。 该游戏在2021年10月27日曾开启过“始发测试”&#xff0c;后继续沉淀了两年才正式开启公测。 B站的ACG内容生态丰富&#xff0c;其中游戏相关内容当数米哈…

锂溶液净化和提纯

锂离子电池是一种充电电池&#xff0c;依靠锂离子在正极和负极之间移动来工作&#xff0c;广泛应用在便携式设备、卫星、储备电源、电动汽车等领域&#xff0c;具有替代各种二次电源的潜力。 近年来国家大力提倡和发展的新能源产业&#xff0c;锂离子电池的需求量的不断攀升&a…

聊聊「低代码」的实践之路

区块链、低代码、元宇宙、AI智能&#xff1b; 01 【先来说说背景】 这个概念由来已久&#xff0c;但是在国内兴起&#xff0c;是最近几年&#xff1b; 低代码即「Low-Code」&#xff1b; 指提供可视化开发环境&#xff0c;可以用来创建和管理软件应用&#xff1b; 简单的说…

Apache Zeppelin系列教程第一篇——安装和使用

一、Apache Zeppelin 介绍 Apache Zeppelin是一种开源的Web笔记本类型交互式数据分析工具&#xff0c;它提供了基于浏览器的界面&#xff0c;允许数据工程师和科学家通过各种语言和工具&#xff0c;如Scala, Python, SQL, R,等等&#xff0c;交互式地进行数据分析、可视化以及…

成功解决长时间挂起虚拟机后再次打开无法连接网络,并提示网络激活失败(亲测有效)

成功解决长时间挂起虚拟机后再次打开无法连接网络&#xff0c;并提示网络激活失败&#xff08;亲测有效&#xff01;&#xff09; 之前做区块链的一个虚拟机很久没打开&#xff0c;一直处于挂起状态&#xff0c;一直提示网络连接激活失败。试了很多种方法没解决&#xff0c;更…

如何设置ddns动态域名实现内网发布外网

在本地搭建好服务器&#xff0c;部署好web网站或其他应用后&#xff0c;需要设置动态域名服务ddns&#xff0c;将主机的内网IP端口映射到外网访问&#xff0c;才能实现在外网访问内网。今天小编就和大家分享一下内网发布外网方案&#xff0c;即如何设置ddns动态域名服务实现外网…
最新文章