數據結構一般與算法在一塊兒出現。若是想要對常見算法有必定的掌握,那麼做爲算法構建的基礎 —— 數據結構,就不能不熟練掌握。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' ]
以上。