javascript 数组
什么是数组?
数组是一个特殊的变量,它能够一次存放一个以上的值。
如果你有一个项目清单,在单个变量中存储品牌,那应该是这样字的:
var brand1 = "Saab"; var brand2 = "Volvo"; var brand3 = "BMW";
假如希望遍历所有汽车牌子并找到一个特定的值?因为如果不知3个而是更多,比如30,300等。
这个时候就是要数组。
数组可以用一个单一的名称存放很多值,并且还可以通过索引号来访问这些值。
创建数组
var brands = ["Saab", "Volvo","BMW"];
还可以拆行,因为声明可以横跨多行:
var brands = [ "Saab", "Volvo", "BMW" ];
注意:最后一个元素之后不用写逗号(,),否者可能出现浏览器兼容问题。
使用javascript 关键字 new 创建数组
var brands = new Array("Saab","Volvo","BMW");
这两种创建数组的效果是一样的,但是出于简洁,可读性,执行速度的考虑,还是使用第一种的方法比较好。
访问素组元素
通过使用索引号来引用耨个数组元素
var name = brands[0];
修改brands里元素的方法是这样:
brands[0] = "Opel";
数组还是一种特殊的对象,使用typeof 运算符会返回 "object"
但是我们还是会以数组来描述。
数组使用数字来访问其元素,比如:
brands[0],返回第一个Opel.
这里对象这是使用名称来访问其成员。比如person.firstName 返回 Tom
var person = {firstNmae: "Tom", lastName: "jie", age: 20};
可以在数组中保存对象,保存函数,保存数组:
myArray[0] = Date.now; myArray[1] = myFunction; myArray[2] = brands;
var x = brands.length; // length 属性返回元素的数量 var y = brands.sort(); // sort() 方法对数组进行排序
访问最后一个元素可以这样使用
var last = brands[brands.length -1];
遍历数组元素
for 循环
var fruits,text,flen,i; fruits = ["banana", "apple","orange"]; flen = fruits.length; text = "<ul>"; for(i = 0; i< flen; i++) { text += "<li>"+ fruits[i]+"</li>; }
2. Array.foreach() 函数
var fruits,text; fruits = ["banana","apple","orange"]; text="<ul>"; fruits.foreach(myFunction); text +=</ul>; function myFunction(value) { text += "<li>" + value +"</li>"; }
添加数组元素使用push
fruits.push("lemon");
还可以使用length属性
fruits[fruits.length] = "lemon";
总结一下:
JavaScript中
数组使用的是数字索引
对象使用的是命名索引
数组是特殊类型的对象,具有数字索引
创建与使用数组使用 [] 就行。
因为数组是特殊的对象,那该如何识别数组呢?
1.这里 ECMAScript5 定义了新方法 Array.isArray();
Array.isArray(fruits); // 返回 true;
2.创建 isArray()函数来解决
function isArray(x) { return x.constructor.toSting().indexOf("Array") > -1; }