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]