首页 > 语言 > JavaScript > 正文

JavaScript数据结构学习之数组、栈与队列

2024-05-06 15:17:45
字体:
来源:转载
供稿:网友

前言

数据结构就是关系,没错,就是数据元素相互之间存在的一种或多种特定关系的集合。

常用的数据结构有:

数组,队列(queue),堆(heap),栈(stack),链表(linked list ),树(tree),图(graph)和散列表(hash)

本文主要介绍的是数组、栈与队列,下面来一起看看详细的介绍吧。

一、数组

数组是平时使用最常用的数据结构,在JavaScript中数组是动态的分配大小,在这里我不会介绍JavaScript里面数组的所有的方法,而是针对数据结构这个方向谈谈所用到的方法。

创建和初始化数组

//创建空数组var array = new Array();//[]//初始化数组var array = new Array(1,2,3);var array = Array.of(1,2,3);//ES6的方法//[1,2,3]//创建大小为5的数组var array = new Array();//ES6的方法//[undefined,undefined,undefined,undefined,undefined]//给数组赋值var array = new Array();array[0] = 1 ;array[1] = 2 ;array[2] = 3 ;//[1,2,3]

添加元素

往数组后添加元素

var number = [1,2,3];number[number.length] = 4;//[1,2,3,4]//或者var number = [1,2,3];number.push(4);//[1,2,3,4]

往数组前面添加元素

var number = [1,2,3];number.unshift(0);//[0,1,2,3]number.unshift(-2,-1);//[-2,-1,0,1,2,3]

往数组的任意位置插入元素

运用splice方法

//在索引1后面添加2,3,4var number = [1,5,6];number.splice(1,0,2,3,4);//[1,2,3,4,5,6]

删除元素

删除第一位

var number = [1,2,3];number.shift();//[2,3]

删除任意位置

使用splice方法删除数组任意位置的元素

var numebr = [1,2,3,4,5,6];//如果想删除元素3number.splice(2,1);//[1,2,4,5,6]//如果想删除元素4,5number.splice(3,2);

排序

反序

var number = [3,2,1];number.reverse();//[1,2,3]

自然排序

var numebr = [2,3,4,1,3,7];number.sort();//[1,2,3,3,4,7]

自定义排序

这个自定义排序跟java里面实现comparator接口一个意思。用处可大了。

var number = [4,5,6,7,1,2,3,8,9,10,11,12,13];number.sort();//[1, 10, 11, 12, 13, 2, 3, 4, 5, 6, 7, 8, 9]

仿佛看起有点不对啊,我们应该想要的是
[1,2,3,4,5,6,7,8,9,10,11,12,13],这个时候我们就用自定义排序来解决这个问题

var number = [4,5,6,7,1,2,3,8,9,10,11,12,13];function compare(a,b){ if(a < b){ return -1; } if(a > b){ return 1; } return 0;}number.sort(compare);//[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]

这还只是最简单的,也可以对任何对象类型进行数组排序。例如,对象Person有名字和年龄属性,我们希望根据年龄排序

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选