【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(‘’)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值