数组Array

数组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

【数组Array】常用排序方式
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"}]

    推荐阅读