前言
数据结构就是关系,没错,就是数据元素相互之间存在的一种或多种特定关系的集合。
常用的数据结构有:
数组,队列(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有名字和年龄属性,我们希望根据年龄排序
新闻热点
疑难解答
图片精选