- Array
数组是包含子项并由索引迭代子项的一种对象,索引从零开始。
//
使用构造函数创建数组 var
foo = new Array; //
使用数组语法创建数组 var
bar = []; |
//
数组语法情况下 var
foo = [ 100 ]; alert(
foo[ 0 ] );
// 100 alert(
foo.length ); // 1 //
构造函数情况下 var
bar = new Array(
100 ); alert(
bar[ 0 ] );
// undefined alert(
bar.length ); // 100 |
//
在数组上使用 push(), pop(), unshift() 和 shift() 方法 var
foo = []; foo.push("a"
); foo.push("b"
); alert(
foo[ 0 ] );
// a alert(
foo[ 1 ] );
// b alert(
foo.length ); // 2 foo.pop(); alert(
foo[ 0 ] );
// a alert(
foo[ 1 ] );
// undefined alert(
foo.length ); // 1 foo.unshift("z"
); alert(
foo[ 0 ] );
// z alert(
foo[ 1 ] );
// a alert(
foo.length ); // 2 foo.shift(); alert(
foo[ 0 ] );
// a alert(
foo[ 1 ] );
// undefined alert(
foo.length ); // 1 |
- 数组的方法和属性
- .length
.length属性可以确定数组中元素的数量。
var
myArray = [ "hello",
"world", "!" ]; console.log(
myArray.length );
// 3 |
var
myArray = [ "hello",
"world", "!" ]; for
( var i =
0; i < myArray.length; i = i + 1 ) { console.log(
myArray[ i ] ); } |
- .concat()
.concat()方法用于串联两个或更多的数组。
var
myArray = [ 2,
3, 4 ]; var
myOtherArray = [ 5,
6, 7 ]; var
wholeArray = myArray.concat( myOtherArray );
// [ 2, 3, 4, 5, 6, 7 ] |
- .join()
.join()方法用于创建一个由数组内元素组成的字符串,可以指定每个元素之间的分隔符,如果没有指定那么默认为逗号。
//
连接元素 var
myArray = [ "hello",
"world", "!" ]; //
默认逗号为分隔符 console.log(
myArray.join() );
// "hello,world,!" //
也可以指定分隔符 console.log(
myArray.join( " " ) );
// "hello world !"; console.log(
myArray.join( "!!" ) );// "hello!!world!!!"; //
指定为无分隔符 console.log(
myArray.join( "" ) );
// "helloworld!" |
- .push()
.push()方法将元素添加到数组的末尾并扩展这个数组,你可以使用索引来设置数组元素的值,但是索引有可能是不确定的,那么使用该方法添加元素到数组中是比较安全的做法。
var
myArray = []; myArray[0
] = "hello"; myArray[1
] = "world"; myArray[3
] = "!"; console.log(
myArray ); // [ "hello", "world", undefined, "!" ];
var
foo = []; foo.push("a"
); foo.push("b"
); |
- .pop()
.pop()方法用于移除数组中的最后一个元素,与.push()方法的功能相反。
var
myArray = []; myArray.push(0
); // [ 0 ] myArray.push(2
); // [ 0 , 2 ] myArray.push(7
); // [ 0 , 2 , 7 ] myArray.pop();//
[ 0 , 2 ] |
- .reverse()
.reverse()方法输出反序的数组序列。
var
myArray = [ "world" ,
"hello" ]; myArray.reverse();//
[ "hello", "world" ] |
- .shift()
//
队列 var
myArray = []; myArray.push(0
); // [ 0 ] myArray.push(2
); // [ 0 , 2 ] myArray.push(7
); // [ 0 , 2 , 7 ] myArray.shift();//
[ 2 , 7 ] |
- .slice()
.slice()方法用于提取数组的一部分生成一个新的数组,这个方法需要一个参数,这个参数是数组提取的开始序号。
var
myArray = [ 1,
2, 3,
4, 5,
6, 7,
8 ]; var
newArray = myArray.slice( 3 ); console.log(
myArray ); // [ 1, 2, 3, 4, 5, 6, 7, 8 ] console.log(
newArray ); // [ 4, 5, 6, 7, 8 ] |
- .splice()
.splice()方法用于移除一部分元素并新增一部分元素,该方法至少需要3个参数。
myArray.splice( index, length, values, ... ); |
length:被移除元素的数量
values:插入到指定序号位置的值
var
myArray = [ 0,
7, 8,
5 ]; myArray.splice(1,
2,
1, 2,
3, 4 ); console.log(
myArray ); // [ 0, 1, 2, 3, 4, 5 ] |
- .sort()
.sort()方法用于数组排序,它需要一个参数,这个参数是一个比较方法,如果没有这样的方法,那么默认按正序排列。
//
默认情况的排序 var
myArray = [ 3,
4, 6,
1 ]; myArray.sort();//
1, 3, 4, 6 //
设置比较方法的排序 functiondescending(
a, b ) { return
b - a; } var
myArray = [ 3,
4, 6,
1 ]; myArray.sort(
descending ); // [ 6, 4, 3, 1 ] |
- .unshift()
.unshift()方法用于在数组的第一个位置插入元素。
var
myArray = []; myArray.unshift(0
); // [ 0 ] myArray.unshift(2
); // [ 2 , 0 ] myArray.unshift(7
); // [ 7 , 2 , 0 ] |
- .forEach()
.forEach()方法用于遍历数组。这个方法有三个参数,分别是Element(元素)、Index(元素在数组中的序号)和Array(数组) 。
functionprintElement(
elem ) { console.log(
elem ); } functionprintElementAndIndex(
elem, index ) { console.log("Index
" + index + ": " + elem ); } functionnegateElement(
elem, index, array ) { array[
index ] = -elem; } myArray
= [ 1,
2, 3,
4, 5 ]; myArray.forEach(
printElement ); myArray.forEach(
printElementAndIndex ); myArray.forEach(
negateElement ); |