javaScript裏很是重要的一個知識點,就是數據的操做,也就是增刪改查,說到增刪改查,那就要說說數組的操做了,由於大部分狀況下,後臺返回的數據都是數組,因此我來總結一下一些數組操做的方法,若有遺漏,後續補充:javascript
1 arr.push() 從後面添加元素,返回值爲添加完後的數組的長度java
let arr = [1,2,3,4,5] console.log(arr.push(5)) // 6 console.log(arr) // [1,2,3,4,5,5]
2 arr.pop() 從後面刪除元素,只能是一個,返回值是刪除的元素es6
let arr = [1,2,3,4,5] console.log(arr.pop()) // 5 console.log(arr) //[1,2,3,4]
3 arr.shift() 從前面刪除元素,只能刪除一個 返回值是刪除的元素數組
let arr = [1,2,3,4,5] console.log(arr.shift()) // 1 console.log(arr) // [2,3,4,5]
4 arr.unshift() 從前面添加元素, 返回值是添加完後的數組的長度prototype
let arr = [1,2,3,4,5] console.log(arr.unshift(2)) // 6 console.log(arr) //[2,1,2,3,4,5]
5 arr.splice(i,n,replace) 刪除從i(索引值)開始以後的那個元素。返回值是刪除的元素
參數:code
i :索引值 排序
n :刪除的個數 索引
replace(能夠沒有,沒有的話只作刪除操做):替換的元素ip
let arr = [1,2,3,4,5] console.log(arr.splice(1,2,'a','b')) //[3,4] console.log(arr) // [1,2,'a','b',5]
6 arr.concat() 鏈接兩個數組 返回值爲鏈接後的新數組字符串
let arr = [1,2,3,4,5] console.log(arr.concat([1,2])) // [1,2,3,4,5,1,2] console.log(arr) // [1,2,3,4,5]
7 str.split() 將字符串轉化爲數組
let str = '123456' console.log(str.split('')) // ["1", "2", "3", "4", "5", "6"]
8 arr.sort() 將數組進行排序,返回值是排好的數組,默認是按照最左邊的數字進行排序,不是按照數字大小排序的,見例子。
let arr = [2,12,8,1,4,27,3] console.log(arr.sort()) // [1, 12, 2, 27, 3, 4, 8] var arr = [2,12,8,1,4,27,3]; function sequence(a,b){ if (a>b) { return 1; }else if(a<b){ return -1 }else{ return 0; } } console.log(arr.sort(sequence));
9 arr.reverse() 將數組反轉,返回值是反轉後的數組
let arr = [1,2,3,4,5] console.log(arr.reverse()) // [5,4,3,2,1] console.log(arr) // [5,4,3,2,1]
10 arr.slice(start,end) 切去索引值start到索引值end的數組,不包含end索引的值,返回值是切出來的數組
let arr = [1,2,3,4,5] console.log(arr.slice(1,3)) // [2,3] console.log(arr) // [1,2,3,4,5]
11 arr.filter(callback) 過濾數組,返回一個知足要求的數組
var a=[1,2,3,4,5,6,7,8] var b = a.filter((item)=>{ return item>3 }) console.log(b) [4,5,6,7,8]
12 arr.map(callback) 數組循環
var a=[1,2,3,4,5,6,7,8] a.map((item)=>{ console.log(item) //依次打印1,2,3,4,5,6,7,8 })
13.es6 去重操做
var a=[1,2,2,3,3,4,4,5,6,7,8] var b = [...new Set(a)] console.log(b) [1,2,3,4,5,6,7,8]
14.僞數組轉數組
//先看下什麼叫僞數組 var object = { 0:'1', 1:'2', 2:'3', 3:'4', 4:'5', length:5 } for(var i=0;i<object.length;i++){ console.log(object[i]) } //依次打印1,2,3,4,5 //僞數組轉數組 //方法一: //Array.from() var b = Array.from(object) console.log(b) //["1", "2", "3", "4", "5"] //方法二: var c = [].slice.call(object) console.log(c) //["1", "2", "3", "4", "5"] //方法三: var d = Array.prototype.slice.call(object) console.log(d) //["1", "2", "3", "4", "5"]
15.數組的深拷貝
//淺拷貝方法一: var arr = [1,2,3,4]; var b = arr; b.push(5); console.log(arr) // [1, 2, 3, 4, 5] //深拷貝方法二: var arr = [1,2,3,4]; var b = JSON.parse(JSON.stringify(arr)) b.push(5); console.log(arr) // [1, 2, 3, 4] console.log(b) // [1, 2, 3, 4, 5]