JavaScript 笔记 之 Array(数组) 对象

runoob | | 访问(32)

  一、创建一个数组

  创建一个数组,有三种方法。

  下面的代码定义了一个名为 myCars的数组对象:

  1: 常规方式:

var myCars=new Array();
myCars[0]="Saab";
myCars[1]="Volvo";
myCars[2]="BMW";

  2: 简洁方式:

var myCars=new Array("Saab","Volvo","BMW");

  3: 字面:

var myCars=["Saab","Volvo","BMW"];

  二、访问数组

  通过指定数组名以及索引号码,你可以访问某个特定的元素。

  以下实例可以访问myCars数组的第一个值:

var name=myCars[0];

  以下实例修改了数组 myCars 的第一个元素:

myCars[0]="Opel";

  [0] 是数组的第一个元素。[1] 是数组的第二个元素。

  三、在一个数组中你可以有不同的对象

  所有的JavaScript变量都是对象,数组元素是对象,函数是对象,因此,你可以在数组中有不同的变量类型。你可以在一个数组中包含对象元素、函数、数组:

myArray[0]=Date.now;
myArray[1]=myFunction;
myArray[2]=myCars;

  四、数组方法和属性

  使用数组对象预定义属性和方法:

var x=myCars.length // myCars 中元素的数量
var y=myCars.indexOf("Volvo") // "Volvo" 值的索引值

  五、数组对象参考手册

  1、为数组对象创建扩展方法

// 原型是JavaScript全局构造函数。它可以构建新Javascript对象的属性和方法。
Array.prototype.myToUpperCase=function(){
	for (i=0;i<this.length;i++){
		this[i]=this[i].toUpperCase();
	}
}
	
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.myToUpperCase();
document.write(fruits.join());
// 输出:BANANA,ORANGE,APPLE,MANGO

  2、合并两个数组 - concat()

var hege = ["Cecilie", "Lone"];
var stale = ["Emil", "Tobias", "Linus"];
var children = hege.concat(stale);
document.write(children);
// 输出:Cecilie,Lone,Emil,Tobias,Linus

  3、合并三个数组 - concat()

var parents = ["Jani", "Tove"];
var brothers = ["Stale", "Kai Jim", "Borge"];
var children = ["Cecilie", "Lone"];
var family = parents.concat(brothers, children);
document.write(family);
// 输出:Jani,Tove,Stale,Kai Jim,Borge,Cecilie,Lone

  4、用数组的元素组成字符串 - join()

var fruits = ["Banana", "Orange", "Apple", "Mango"];
document.write(fruits.join());
// 输出:Banana,Orange,Apple,Mango

  5、删除数组的最后一个元素 - pop()

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.pop()
document.write(fruits.join());
// 输出:Banana,Orange,Apple

  6、数组的末尾添加新的元素 - push()

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.push("Kiwi")
document.write(fruits.join());
// 输出:Banana,Orange,Apple,Mango,Kiwi

  7、将一个数组中的元素的顺序反转排序 - reverse()

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.reverse();
document.write(fruits.join());
// 输出:Mango,Apple,Orange,Banana

  8、删除数组的第一个元素 - shift()

var fruits = ["Banana", "Orange", "Apple", "Mango"];
var delell = fruits.shift();
document.write('删除后数组为:' +  fruits);
document.write('<br>');
document.write('删除的元素是:' +  delell);
// 输出:
// 删除后数组为:Orange,Apple,Mango
// 删除的元素是:Banana

  9、从一个数组中选择元素 - slice()

var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
var citrus = fruits.slice(1,3);
document.write(citrus.join());
// 输出:Orange,Lemon

  10、数组排序(按字母顺序升序) - sort()

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.sort();
document.write(fruits.join());
// 输出:Apple,Banana,Mango,Orange

  11、数字排序(按数字顺序升序) - sort()

var points = [40,100,1,5,25,10];
points.sort(function(a,b){return a-b});
document.write(points.join());
// 输出:1,5,10,25,40,100

  12、数字排序(按数字顺序降序) - sort()

var points = [40,100,1,5,25,10];
points.sort(function(a,b){return b-a});
document.write(points.join());
// 输出:100,40,25,10,5,1

  13、在数组的第2位置添加一个元素 - splice()

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(2,0,"Lemon","Kiwi");
document.write(fruits.join());
// 输出:Banana,Orange,Lemon,Kiwi,Apple,Mango

  14、转换数组到字符串 - toString()

var fruits = ["Banana", "Orange", "Apple", "Mango"];
var str = fruits.toString();
document.write(str);
// 输出:Banana,Orange,Apple,Mango

  15、在数组的开头添加新元素 - unshift()

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.unshift("Lemon","Pineapple");
document.write(fruits.join());
// 输出:Lemon,Pineapple,Banana,Orange,Apple,Mango
// 注意: unshift()方法不能用于 Internet Explorer 8 之前的版本,插入的值将被返回成 undefined 。