JavaScript 数组

数组是由元素的集合构成的一种数据结构data structure,每一个由数组索引或键key所唯一标识。它用来存储数据的集合,将数组看成具有同样类型的变量的集合通常也是非常有用的。

JavaScript有三个路径可以构造数组

  • 数组定义符号,使用方括号。
  • 使用new关键字创造数组实例。
  • 用new关键字的数组构造

使用数组定义符号

语法

var arrayName=[element1,element1.....elementN];

例子

var days=["Sunday","Monday","Tuesday"];

直接创造数组实例

var days = new Array();
days[0] = "Sunday";
days[1] = "Monday";
days[2] = "Tuesday";

使用构造器

var days=new Array("Sunday","Monday","Tuesday");

数组元素类型

数组元素可以是任何类型,包括数值,字符串,布尔值,null,undefined, 对象,函数,正则表达式和其他数值

var anArray = [500, "car", ["ID", 121], true];

数值元素的处理

为了处理一个数值当中的元素,需要使用带方括号的数值索引。JavaScript数组从0索引开始,所以第一个数组元素是[0]。

例子

var days=new Array("Sunday","Monday","Tuesday");
var day_2 = days[1];
alert(day_2);

输出

Monday

长度属性

数组索引是零基的zero-based,意思是统计一个数组索引需要从0开始。如果一个数组有5个元素,那么这个数组的长度属性值是5。但是如果一个JavaScript 数组有5个元素,则最后一个数组元素的索引是4,这是因为JavaScript 数组索引是零基的。一个数组集合的实例对象的长度属性,是这个数组当中有多少个元素。

var days=new Array("Sunday","Monday","Tuesday","wednesday","Thursday");
alert(days.length);

上面的程序运行,会返回5.

数组元素的循环

可以使用"for"关键字遍历JavaScript 数组

例子

var days=new Array("Sunday","Monday","Tuesday","wednesday","Thursday");
daysLen = days.length;
for (i = 0; i < daysLen; i++) {
alert(days[i]);
}

输出

Sunday
Monday
Tuesday
ednesday
Thursday

也可以使用 for loop...

var days=new Array("Sunday","Monday","Tuesday","wednesday","Thursday");
for (let day of days) {
alert( day );
}

输出

Sunday
Monday
Tuesday
Wednesday
Thursday

在一个数组的末尾增加

使用push() 方法在一个数组的末尾增加一个元素,它的双生函数,pop() 方法,可以从一个数组的末尾移除一个元素。

push() 方法

var days=new Array("Sunday","Monday","Tuesday");
days.push("wednesday");
for (let day of days) {
alert( day );
}

输出

Sunday
Monday
Tuesday
Wednesday

从末尾移除一个元素

pop() method

var days=new Array("Sunday","Monday","Tuesday","wednesday","Thursday");
days.pop();
days.pop();
for (let day of days) {
alert( day );
}

输出

Sunday
Monday
Tuesday

在数组的前面添加项目

使用JavaScript 数组的unshift() 方法,在数组前面添加项目。

var days=new Array("Monday","Tuesday","wednesday");
days.unshift("Sunday");
for (let day of days) {
alert( day );
}

输出

Sunday
Monday
Tuesday
Wednesday

移除数组前面的项目

var days=new Array("Sunday","Monday","Tuesday","wednesday");
days.shift();
for (let day of days) {
alert( day );
}

输出

Monday
Tuesday
Wednesday

编辑数组元素

用索引值处理。使用索引值,可以编辑一个数组的一个元素。

var days=new Array("Sunday","Tuesday","wednesday");
days[0] = "Monday" ;
for (let day of days) {
alert( day );
}

输出

Monday
Tuesday
Wednesday

找出一个数组元素的索引值

JavaScript 的indexOf()方法返回在一个数组当中某个值的第一次出现的索引值。

var days=new Array("Sunday","Monday","Tuesday","wednesday");
var idx = days.indexOf("Tuesday");
alert(idx);

上面的程序返回2。

JavaScript里,如何检查一个对象是否在一个数组中呢?

在JavaScript里,可以使用下面的代码检测一个给定的字符串是否在数组当中。

var days = ["Sunday", "Monday", "Tuesday"];
var dayIn = (days.indexOf("Friday") > -1);
alert(dayIn);

上面的代码返回"false", 因为"Friday" 不在这个"days"的数组当中。

Array.sort排序

Javascript 的Array.sort()方法可以将一个数组的元素按照字符顺序或数字顺序排序,可以按照升序也可以按照降序。默认排序顺序是字母alphabetic升序ascending。

var days=new Array("Sunday","Monday","Tuesday","wednesday");
days.sort();
alert(days);
days.reverse();
alert(days)

输出

"Sunday","Monday","Tuesday","wednesday"
"wednesday","Tuesday","Monday","Sunday"

Arrays 未定义值Undefined Values

数组根据添加的元素数据类型,会自动的增长和动态的改变尺寸。这样,当增加或移除元素的时候,数组的长度会按照需要而变化。当你使用构造器声明一个数组的时候,每个元素位将自动设置为"undefined"。

var days = new Array(4);
days[0] = "Sunday";
days[1] = "Monday";
days[3] = "Wednesday";
alert(days.length); // will alert 4
alert(days[2]); // will alert "undefined"

输出

4
undefined

多维数组Multidimensional arrays

JavaScript 的多维数组是一个数组的数组,或者说一个数组,它的元素是有数组组成。

var multiArr = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
];
alert( multiArr[1][1] );

上面的程序将返回 5.

JavaScript toString()

toString() 方法返回一个对象的字符串表示。

var val =100;
alert(val.toString());

原文链接