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

【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.kler.cn/a/15566.html

相关文章:

  • 牛客题库 21738 牛牛与数组
  • 241113.学习日志——[CSDIY] [ByteDance] 后端训练营 [02]
  • 安全见闻(完整版)
  • 跨平台WPF框架Avalonia教程 十五
  • 高光谱深度学习调研
  • SOP搭建:企业标准化操作程序构建与实施指南
  • Duboo介绍与入门
  • 【Log4j RCE (CVE-2021-44228)】复现及原理分析
  • ASEMI代理ADI亚德诺ADM3051CRZ-REEL7车规级芯片
  • 一款免安装、多平台兼容的 拾色器(Color Picker)
  • C#开发的OpenRA游戏的加载地图流程
  • 【OAI】UERANSIM容器与OAI核心网分立部署及测试
  • 力扣第343场周赛
  • 【Git 入门教程】第七节、Git 远程仓库(Github)
  • MongoDB 聚合管道的输出结果到集合($out)及合并结果到集合($merge)
  • 什么是redis发布订阅模式,并用java代码实现小demo
  • 我们要被淘汰了?从科技变革看"ChatGPT"与"无代码开发"
  • 【数据库数据恢复】ORACLE常见数据灾难的数据恢复可能性分析
  • 【学习笔记】CF607E Cross Sum
  • 前端开发技术——对象
  • apple pencil有买的必要吗?便宜的平替电容笔推荐
  • [学习笔记] [机器学习] 3. KNN( K-近邻算法)及练习案例
  • Springboot +Flowable,详细解释啥叫流程实例(二)
  • 跌倒检测和识别3:Android实现跌倒检测(含源码,可实时跌倒检测)
  • QFIELD-GIS工具版如何编辑数据
  • 入职华为外包一个月后,我离职向“北上广深”流浪了...