数组Array
基本使用
var arr = [3, 4, 5]
arr.length// 3
arr[0]// 3
arr[2] = 7
console.log(arr)// [3, 4, 7]
arr[3] = 100
console.log(arr)// [3, 4, 7, 100]
arr[100] = 10
console.log(arr)// [3, 4, 7, 100, undifined*96, 10]
清空数组,巧用length
var arr = [3, 4, 5]
arr.length=0
arr// [ ]
遍历数组
var arr = [3, 4, 5]
for(var i = 0; i < arr.length; i++){
console.log(arr[i])
}// 3 4 5
push,队尾添加元素
var arr = [3, 4, 5]
arr.push("hello world")
console.log(arr)// [3, 4, 5, "hello world"]
var arr = [3, 4, 5]
arr.push("hello world",999)//添加多个元素
console.log(arr)// [3, 4, 5, "hello world", 999]
pop,拿出最后一个元素
var arr = [3, 4, 5]
arr.pop()// 5
arr// [3, 4]
unshift,在数组开头新增元素
var arr = [3, 4, 5]
arr.unshift("hello world",999)
console.log(arr)// ["hello world", 999, 3, 4, 5]
shift,在数组开头移除元素
var arr = [3, 4, 5]
arr.shift()
console.log(arr)// [4, 5]
splice用法
注意: splice会改变数组内的参数
splice,数组中间移除元素
var arr = [3, 4, 5, 6, 9]
arr.splice(2,1)// [5]从下标2开始删除,删除长度为1
arr// [3, 4, 6, 9]
var arr = [3, 4, -3, -2, -1, 5]
for(var i = 0; i < arr.length; i++){
if(arr[i] < 0){
arr.splice(i,1)
i--
}
}//删除数组内小于0的元素
arr// [3, 4, 5]
splice,数组中间添加元素
var arr = [3, 4, 5, 6, 9]
arr.splice(2,0,0,1,2)// 在下标2的元素前加入0,1,2
arr// [3, 4, 0, 1, 2, 5, 6, 9]
splice,数组中间替换元素
var arr = [3, 4, 5, 6, 9]
arr.splice(2,2,0,1,2)// [5, 6] 从下标2的元素起删除2个元素,并加入0,1,2
arr// [3, 4, 0, 1, 2, 9]
slice用法
slice只提取数组内参数,不做改变
var arr = [3, 4, 5, 6, 9]
arr.slice(1,3)// [4, 5] 从下标为1的元素之前开始,下标为3元素之前结束
join
join() 方法用于把数组中的所有元素放入一个字符串
var arr = [3, 4, 5, 6, 9]
arr.join// "3-4-5-6-9"
reverse
reverse() 方法用于颠倒数组中元素的顺序
var arr = [3, 4, 5, 6, 9]
arr.reverse()// [9, 6, 5, 4, 3]
常用创建数组方式
字面量
var b = [1, 2, 'hello'];
concat(array)
concat方法用于拼接数组
a.concat(b)返回一个a和b共同组成的新数组,同样不会修改任何一个原始数组,也不会递归连接数组内部数组
var a = [1,2,3,4,5];
var b = [6,7,8,9];
console.log(a.concat(b));//[1, 2, 3, 4, 5, 6, 7, 8, 9]
console.log(a); //[1, 2, 3, 4, 5]
console.log(b); //[6, 7, 8, 9]
sort排序
sort方法用于对数组进行排序
列:
var a=[5,4,3,2,1,z,a];
a.sort();
console.log(a);//[1, 2, 3, 4, 5,a,z] 从小到大,字母大于数字
默认排序方式
var a=[7,8,9,10,11];
a.sort();
console.log(a);//[10, 11, 7, 8, 9] sort是看尾号排序,7,11实际是7>1
常用排序方式
var a = [7,8,9,10,11];
a.sort(function(v1,v2){
return v1-v2;
});
console.log(a);// [7, 8, 9, 10, 11]
var friends = [{age:3,name:"dog"},{age:2,name:"bird"},{age:500,name:"dragon"}]
friends.sort(function(v1,v2){
return v1.age - v2.age
});// [{age: 2, name: "bird"},{age: 3, name: "dog"},{age: 500, name: "dragon"}]