数据结构一般与算法在一块儿出现。若是想要对常见算法有必定的掌握,那么做为算法构建的基础 —— 数据结构,就不能不熟练掌握。javascript
众所周知,数据结构是为算法服务的,而算法操做须要在特定的数据结构之上。如:二分查找等排序算法,须要在有随机访问特性的数组之上实现,而若是将数据保存在链表或者字典中,算法实现将变得困难。java
下面就对 JavaScript 语言实现常见的数据结构作个总结,以备为后续算法学习打下基础。算法
在 JavaScript 中,数组可经过 new Array() 或 [] 建立,而且数组是可修改的对象,这使得用数组实现一些其余数据结构变得很容易。经常使用的数据方法有:数组
let arr = ['a', 'b', 'c'], arr_1 = ['x', 'y', 'z'];
- cancat() 链接两个或者多个数组,而且返回该数组
数据结构
let newArr = arr.concat(arr_1); // newArr: ['a', 'b', 'c', 'x', 'y', 'z']
- join() 使用指定字符,将数组各元素连着成字符串返回函数
let str = arr.join('-'); // str: 'a-b-c'
- pop() 删除数组尾的一个元素并返回;学习
let char = arr.pop(); // char: 'c'; arr:['a', 'b']
- push() 追加元素到数组尾spa
arr.push('d'); // arr: ['a', 'b', 'c', 'd']
- shift() 删除数组首的一个元素并返回;scala
let char = arr.shift(); // char: 'a'; arr: ['b', 'c']
- unshift() 追加元素到数组首code
arr.unshift('a'); // arr: ['a', 'a', 'b', 'c']
- sort() 对数组元素排序,按照字符顺序,可接受函数
let arr_1 = arr.sort(function(a, b){ return b.charCodeAt() - a.charCodeAt(); }) // arr_1: ['c', 'b', 'a']
- splice 经过指定索引删除元素或添加元素
arr.splice(1, 2) // 删除index 为 1的元素开始,长度为 2的长度 // arr: ['a'] arr.splice(1, 0, 'x', 'y', 'z') // 删除 index 为1的0个元素,并添加元素: 'x', 'y', 'z' // [ 'a', 'x', 'y', 'z', 'b', 'c' ]
以上。