1,创建数组的两种方式
let arr = [1,2,3]
let arr = new Array(2) //长度为2,有两个为空的数组元素
let arr = new Array(1,2,3) //[1,2,3]
2,检测是否为数组的两种方式
Arrsy.isArray(arr) //优先级高于instanceof,因为可以检测iframes,h5新增的方法,ie9支持
arr instanceof Array //
3.添加数组元素
arr.push(1,2) //往后面添加,返回新数组长度
arr.unshift(1,2) //在数组前面添加,也是返回新数组长度
4,删除数组元素
arr.pop() //删除最后一个,一次只能删除一个。返回被删除元素
arrr.shift() //删除第一个,一次只能删除一个。返回被删除元素
5,数组排序
反转数组reverse()
arr.reverse() //返回反转后的数组
手写reverse:
Array.prototype.reverse = function(){
let count = parseInt(this.length/2)
for(let i = 0; i<count;i++){
let a = this[i]
this[i] = this[this.length-1-i]
this[this.length-1-i] = a
}
return this
}
排序sort():排序并返回数组
arr.sort(function(a,b){
return a - b;//按照从小到大升序排列
return b - a; //降序
})
6,获取元素索引
indexOf(数组元素,指定开始查找的位置) //返回第一个满足条件的索引号,找不到的话返回-1
lastIIndexOf(数组元素) //返回最后一个满足条件的索引号,找不到的话返回-1
7,数组去重
8,把数组转换成字符串
arr.toString(); //[1,2,3]返回字符串’1,2,3‘
arr.join("-") //[1,2,3]返回“1-2-3”
9.concat() //拼接数组
arr1.concat(arr2) //返回新数组
arr1.concat(arr2,arr3) //返回新数组
不会改变arr1,以及arr2
如果concat不传参数返回一个首层深拷贝的数组
10,slice(begin,end) //截取数组
截取数组下标从begin到end的内容,不包含end
begin超出数组范围,会返回空数组
let arr = 【1,2,3,4】
arr.slice(1,3) //2,3
arr.slice(1,5) //2,3,4
arr.slice(-2) //倒数第二个截取到结束
11,splice() 返回被删的内容的数组,如果没有删除返回空数组
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/splice