JavaScript 数组

来源:互联网 发布:解数学题用什么软件 编辑:程序博客网 时间:2024/06/05 16:14

数组

1、数组是什么
数组是指的有序列表。数组中的每个值叫做一个元素,而每个元素在数组中都有一个唯一的位置。这个位置用数字表示,叫做索引数据;用字符串表示,叫做关联数组。

2、一维数组

定义数组

字面量方式:

var arr=[1,2,3 ];
console.log(arr);

结果:[ 1, 2, 3 ]

构造函数方式:

var arr=new Array(1,2,3);
console.log(arr);

结果:[ 1, 2, 3 ]

索引数组

var arr=[]
arr[0]=1;
arr[2]=2;
console.log(arr);

结果:[ 1, , 2 ]

值得注意的是: 索引数组的下标是从 0 开始的。

关联数组

var arr=[]
arr["num"]=1;
arr["str"]='a';
arr["bool"]=true;
console.log(arr);

稀疏数组

var arr = [] // 创建一个空数组
arr[10] = "a";
console.log(arr);

结果:[ , , , , , , , , , , 'a' ]

数组的长度

var arr=[1,3,5,7]

console.log(arr.length);

结果:4

var arr=[]
arr[10]='a';

结果:11

遍历数组元素

var arr=[1,3,4,true,null]
for(var i=arr.length-1;i>=0;i- -){

console.log(i+":"+arr[i]);

}

结果:0:1
1:3
2:4
3:true
4:null

还可以使用for..in进行遍历

var arr=[1,3,4,true,null]
for (var i in arr){ //i表示当前数组的下标
console.log(i+":"+arr[i]);
}

结果:0:1
1:3
2:4
3:true
4:null

3、二维数组
数组是可以嵌套的,这就意味着一个数组可以作为一个元素被包含在另外一个数组里面。利用JavaScript 这个特点,创建二维数组,即数组的数组。

定义数组

var arr=[];
var arr=new Array(arr);
console.log(arr);

结果:[ [] ]

二维数组的获取

读取二维数组的具体元素
var arr=[[1,2,3],[23,45,67],[98,76,57]]
console.log(arr[1][2]);

结果:67

二维数组的遍历

var arr=[[1,2.3],[23,45,67],[98,76,57]]
for(var i=0;i<arr.length;i++){
for(var j=0;j<arr.length;j++){
console.log("["+i+"]["+j+"]"+":"+arr[i][j]);
}
}

结果:[0][0]:1
[0][1]:2
[0][2]:3
[1][0]:23
[1][1]:45
[1][2]:67
[2][0]:98
[2][1]:76
[2][2]:57

4、数组常见的方法:

检查数组

如何确定是一个数组,有一下几种检查方法:

1.instanceof:
var arr=[1,2,3]
instanceof:console.log(arr instanceof Array);//true/false
2.Object.prototype.toString.call(arr);返回[object Array]
3.Array.prototype.isPrototypeOf(arr);返回true/false
4.Array.isArray(arr);返回true/false

转换方式

toString();把数组转换成为字符串,并返回结果
var arr=[1,2,3]
var result=arr.toString();
console.log(result);

console.log(Object.prototype.toString.call(arr));//[object Array]

valueOf();返回数组对象原始值

进出栈方式

push();向数组的末尾添加一个或多个元素,返回新的长度
pop(); 删除数组的最后一个元素,并返回删除的元素
unshift();向数组的开头添加一个或多个元素,返回新的元素
shift();删除并返回数组的第一个元素

相关代码:
var arr[2,4,6,3,6,9]

var result=arr.push(2);
console.log(result);//7

var result=arr.pop();
console.log(result);//[9]

var result=arr.unshift(3);
console.log(result);//7

var result=arr.shift();
console.log(result);//2

排序方法

reverse()反转数组的元素

相关代码:
var arr=[2,4,6,3,6,9]

var result=arr.reverse();
console.log(result);

结果:[ 9, 6, 3, 6, 4, 2 ]

sole();对数组的元素进行排序

相关代码:

var arr=[2,4,6,13,6,9]

var result=arr.sort();
console.log(result);

结果:[ 13, 2, 4, 6, 6, 9 ]

var arr=[2,4,6,13,6,9]

var result=arr.sort(function (a,b) {
return a>b;//从小到大
//return a<b;从大到小
});
console.log(result);

结果:[ 2, 4, 6, 6, 9, 13 ]

值得注意的是:reverse();和sort();方法的返回值是经过排序之后的数组。

连接方式

concat();连接两个或更多的数组,并返回结果。
var arr=[2,4,6,13,6,9]

var result=arr.concat(1,2);
console.log(result);

结果:[ 2, 4, 6, 13, 6, 9, 1, 2 ]

操作方法

slice();选取数组的一部分,并返回一个新数组。

slice(start, end)方法 - 截取数组
* start - 表示截取的开始位置
* end - (可选项)表示截取的结束位置,不包含当前end这个位置的数据
* 如果默认省略,表示截取到当前数组的最后
* 如果start和end为负值的话,表示从右向左计算

相关代码:
var arr=[2,4,6,13,6,9]

var result=arr.slice(2,4);
console.log(result);

结果:[ 6, 13 ]

splice();从数组中添加或删除元素

splice(index,howmany);方法
* index - 表示添加或删除或替换的位置
* howmany - 表示删除/添加/替换的个数
* 后面所有的参数 - 表示被添加的数据内容

相关代码:

var arr=[2,4,6,13,6,9]

var result=arr.splice(1,2,3);

console.log(result);
console.log(arr);

结果:[ 4, 6 ]
[ 2, 3, 13, 6, 9 ]

位置方法

JavaScript 提供了如下方法,用于获取数组中指定元素的索引值:
**indexOf();**搜索数组中的元素,并返回它所在的位置
**lastinndexOf();**返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索。
相关代码:
var numbers = [ 1, 2, 3, 4, 5 , 4, 3, 2, 1 ];

console.log( numbers.indexOf( 4 ) );// 3
console.log( numbers.lastIndexOf( 4 ) );// 5