1,创建数组
var arr=[] //字面量定义
var arr=new Array() //调用数组构造函数生成
//用new 关键字去内存开辟一个存储地址比较耗资源,耗内存;而字面量方式直接在内存开辟一个存储字段相对简单,不耗资源.
2,数组元素的读写
var arr = [1,2,3]
console.log(arr[0]) //1
arr[1]=6
console.log(arr) //[1,6,3]
3,数组的长度length
var arr = [1,2,3]
console.log(arr.length) //3
4,数组的添加和删除
var arr = [1,2,3]
arr.push(4) //push在数组的尾部添加一个或多个元素
console.log(arr) //[1,2,3,4]
delete arr[1] //delete运算符删除数组元素,不会修改数组长度,如果删除元素,它就变成了稀疏数组
console.log(arr) //[1, empty, 3, 4]
5,数组的方法
join()
将数组中元素转化成字符串,如不指定分隔符,默认使用逗号
var arr = [1,2,3,4,5]
var str=arr.join(';')
console.log(str) //1;2;3;4;5
reverse()
将数组中的元素颠倒顺序,返回逆序的数组
var arr = [1,2,3,4,5]
arr.reverse()
console.log(arr) //[5, 4, 3, 2, 1]
sort()
将数组中的元素排序并返回排序后的数组,当不带参数时,数组元素以字母表顺序排序
var arr = ["a","c","b","e","d"]
arr.sort()
console.log(arr) //["a", "b", "c", "d", "e"]
var arr2=[23,15,59,63,25]
arr2.sort(function(a,b){
return a-b
})
console.log(arr2) //[15, 23, 25, 59, 63]
concat()
创建并返回一个新数组,将原始数组和concat()的参数连接
var arr1 = [1,2,3,4]
var arr2=[5,6]
var arr=arr1.concat(arr2)
console.log(arr) //[1, 2, 3, 4, 5, 6]
console.log(arr.concat(7,8)) //[1, 2, 3, 4, 5, 6, 7, 8]
slice()返回数组的一个片段,两个参数分别指定开始和结束位置,如果参数出现负数,它表示相对数组的最后一个元素
var arr = [1,2,3,4,5]
var arr1=arr.slice(1,-2)
console.log(arr1) //[2, 3]
splice()插入或删除元素,会修改数组,第一个参数起始点的位置,第二个参数删除的个数,如果省略第二个参数,从其实点位置到数组结尾所有元素都被删除
var arr = [1,2,3,4,5]
arr.splice(4,1)
console.log(arr)//[1, 2, 3, 4]
arr.splice(2,0,3,5)
console.log(arr)//[1, 2, 3, 5, 3, 4]
push()
在数组的尾部添加一个或多个元素,并返回数组新的长度
var arr = []
arr.push(1,2)
console.log(arr)//[1, 2]
pop()
删除数组的最后一个元素,返回它删除的值
var arr = [1,2,3,4]
console.log(arr.pop())//4
console.log(arr)//[1,2,3]
unshift()和shift()
unshift()在数组的头部插入元素,返回数组的长度
shift()删除数组的第一个元素并将其返回
var arr = [1,2,3,4]
console.log(arr.unshift(0))//5
console.log(arr)//[0, 1, 2, 3, 4]
console.log(arr.shift())//0
console.log(arr)//[1,2,3,4]
toString()和toLocaleString()
toString()将数组转化为字符串
toLocaleString()把数组转换为本地字符串。
var arr = [1,2,3,4]
console.log(arr.toString())//1,2,3,4
console.log(arr)//[1,2,3,4]
map()
调用数组的每个元素传递给指定的函数,并返回一个数组,包含该函数的返回值
var arr = [1,2,3,4]
var arr1=arr.map(function(item){
return item*item
})
console.log(arr)//[1, 2, 3, 4]
console.log(arr1)// [1, 4, 9, 16]
filter()
返回的数组元素是调用的数组的一个子集,用来逻辑判定,该函数返回true和false
var arr = [1, 2, 3, 4]
var arr1 = arr.filter(function (item) {
return item % 2 === 0
})
console.log(arr)//[1, 2, 3, 4]
console.log(arr1)// [2, 4]
every()
逻辑判定,数组中所有元素调用特定的函数都返回true,它才返回true
var arr = [1, 2, 3, 4]
var arr1 = arr.every(function (item) {
return item % 2 === 0
})
console.log(arr1)//false
var arr2=arr.every(function(item){
return item<5
})
console.log(arr2)//true
some()
逻辑判断,数组中有一个元素返回true就返回true
var arr = [1, 2, 3, 4]
var arr1 = arr.some(function (item) {
return item % 2 === 0
})
console.log(arr1)//true
var arr2=arr.some(function(item){
return item<5
})
console.log(arr2)//true
reduce()和reduceRight()
使用指定的函数将数组元素进行组合,生成单个值,第一个参数操作的函数,第二个参数是传递给函数的初始值,reduceRight()是从右到左处理函数的
var arr = [1, 2, 3, 4]
var arr1 = arr.reduce(function (x,y) {
return x-y
},1)
console.log(arr1)//-9
indexOf()和lastIndexOf()
搜索数组中元素,返回找到的第一个元素的索引,如果没有找到者返回-1,indexOf()从头开始搜索,lastIndexOf()反向搜索
var arr = [1, 2, 3, 4, 2]
console.log(arr.indexOf(2))//1
console.log(arr.indexOf(5))//-1
console.log(arr.lastIndexOf(2))//4
isArray()
判断是否为数组返回true或false
var arr = [1, 2, 3, 4, 2]
console.log(Array.isArray(arr))//true
var obj={a:1,b:2}
console.log(Array.isArray(obj))//false
类数组
相当于一个对象,又数组的值和相应的属性length
javascript中常见的类数组有 arguments 对象和 DOM 方法的返回结果,比如
document.getElementsByTagName() ;