数组
数组是属于对象的一种表现形式,用来存储多个值,并且js的数组可以存储多种类型,从下标0开始,用中括号[],定义,长度可变
定义
Var x= new Array()//空数组
Var x= new Array(3)//存储数组的长度
Var x= new Array(3,4,5,6)//存储值
Var x=[2,3,4]//简写
var x=[1,2]
x[6]=12
x=[1,2,3]//替换成这个数组
console.log(x.length)//7 //3
console.log(x)//[1, 2, 空属性 × 4, 12] //[1,2,3]
delete x[1]
console.log(x)//[1, 空白, 3]
添加和修改
x[0]=55
删除:删除值,不删除位置
delete x[1]
查询
for(var i=0;i<x.length;i++){
X[1]//遍历值
}
for-in循环:用来遍历对象
for(var v in x){
v:索引值 x[v]:值
}
ES5新属性和方法
- concat() 连接两个或更多的数组,并返回结果。(新数组)
var x=[1,2,3,4]
// var y=["a","c","d","r"]
// var z=x.concat(y)
// console.log(z)//[1, 2, 3, 4, 'a', 'c', 'd', 'r'] 返回新数组,不改变原数组
- join() 把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。
- pop() 删除并返回数组的最后一个元素(删除最后一个)
var x=[5,7,8]
x.pop(2)
console.log(x)
- push() 向数组的末尾添加一个或更多元素,并返回新的长度。
var x=[1,2,3]
// console.log(x)
x.push(66,77,88)//尾部添加
// console.log(x)//[1, 2, 3, 66, 77, 88]
- reverse() 颠倒数组中元素的顺序。
var s="sdd"
var arr=s.split("")
console.log(arr)// ['s', 'd', 'd']
arr.reverse()
console.log(arr)// ['d', 'd', 's']
var str= arr.join("")
console.log(str)//dds
- shift() 删除并返回数组的第一个元素(头删除)
var x=[1,2,3]
// x.shift()//头删除,改变长度
// console.log(x)//[2, 3]
- slice() 从某个已有的数组返回选定的元素
- sort() 对数组的元素进行排序
- splice() 删除元素,并向数组添加新元素。
var x=[1,2,3,4]
// console.log(x)
// x.splice(1,2,55,66)
// console.log(x)// [1, 4] //[1, 55, 66, 4] 删除后添加
- unshift() 向数组的开头添加一个或更多元素,并返回新的长度。
ES5新增属性和方法
- isArray()判断变量是否是数组类型 //console.log(Array.isArray(x))
- some(函数)测试数组中某些值是否通过指定函数,返回布尔值
- every(函数) 测试数组中某些值是否完全通过指定函数,返回布尔值
var x=[1,2,4,56,7,86,44]
var flg= x.some(function(v){
return v>10
})
console.log(flg)//true 任意一个数大于10就行
var flg1= x.every(function(v){
return v>10
})
console.log(flg1)//false 全部大于10
- filter(函数)过滤数组中的值 挑着找,返回新数组
var f=x.filter(function(value,index,arr){
return value>10
})
console.log(f);
- map(函数)遍历数组中的值,可运算,返回新数组 有空位
var m=x.map(function(value,index,arr){
return value*2
})
console.log(m)// [2, 4, 6, 10, 14, 10, 88, 10, 12]
- forEach(函数)遍历数组中的所有值 无返回值
var x=[1,2,3,5,7,5,44,5,6]
var v= x.forEach(function(value,index,arr){ //值,索引,数组
// console.log(value,index,arr)//1 0 (9) [1, 2, 3, 5, 7, 5, 44, 5, 6]
})
- reduce(函数)遍历数组的值从头到尾合并
- reduceRight(函数)遍历数组值从尾到头合并
var x=[1,2,3,5,7,5,44,5,6]
var sum=x.reduce(function(a,b,c,d){//a:上一个值 b:当前值 c:当前值索引 d:原数组
//console.log(a,b,c,d)
return a+""+b
})
console.log(sum) //1235754456
var x=[1,2,3,5,7,5,44,5,6]
var sum=x.reduceRight(function(a,b,c,d){//第一个值 第二个值
// console.log(a,b,c,d)
return a+""+b
})
console.log(sum) //6544575321