java script初探 (三)
java script数组
定义
创建数组
- var 数组名 = [元素0,元素1,元素2,……] ;
var arr = ["Huawei","China","Mirror"];
同时java script也支持 new Array 创建数组。但是建议使用上面的文本方式创建数组
数组访问
- 通过引用 索引号(下标) 来引用某个数组元素
var name = arr[0];
// name = Huawei
ps:数组的索引是从 0 开始的
- 可以直接使用数组名不加索引属性,直接访问所有数组内容
var arr = ["Huawei","China","Mirror"];
document.getElementById("demo").innerHTML = arr ;
// 结果输出: Huawei,China,Refueling
更新数组元素
- 直接使用数组索引赋值方式,就可更改数组内元素
数组是对象
typeof arr_name 会返回 object
java script的数组实际上是一种对象的表现,但是
数组最好还是以数组方式来描述
两者的区别:
- 数组是利用索引位置访问数组内容属性的
- 对象是利用对象属性名来访问属性名对象的属性值的
数组元素可以是对象:
由于数组的特点,数组是特殊类型的对象
故此,可以在数组中存放不同类型的变量
可以数字、字符串、函数、函数……
而且,还可以在数组中存储另一个数组
数组属性
length属性
- length:返回数组的长度(数组的元素数目)
var arr = ["Huawei","China","Mirror"];
arr.length;
// 结果:返回 3
由于arr索引是从零开始,而length数目计算是从1开始的
所以length-1 === 数组最后一个元素的下标索引
- 访问数组最后一个元素的技巧:
var arr[arr.length - 1] ;
// 结果返回 Mirror
遍历数组
- 遍历数组理论上最好的是使用 for 循环
var arr = ["Huawei","China","Mirror"];
var text = "<ul>";
for(i = 0 ; i < arr.length-1 ; i ++){
text += "<li>" + arr[i] + "</li>";
}
Array.foreach()
var arr = ["Huawei","China","Mirror"];
var text ;
text = "<ul>";
arr.forEach(myArr);
text += "</ul>";
function myArr(value){
text += "<li>" + value + "</li>";
}
添加元素:push()
- push():向数组添加新元素的最佳方法就是push()方法
var arr = ["Huawei","China","Mirror"];
arr.push("Refueling");
- 手动添加元素
arr[arr.length] = ("Refueling");
// 或者
arr[x] = ("Refueling");
关联数组
- 在java script中只支持数字索引;并不支持命名索引方法
var arr = [];
arr[0] = "Huawei";
arr[1] = "China";
arr[2] = "Refueling";
var x = arr.length ; //返回 3
var y = arr[0]; //返回 Huawei
- 如果使用了命名索引,则会把数组重定义为 对象
var arr = [];
arr["A"] = "Huawei";
arr["B"] = "China";
arr["C"] = "Refueling";
var x = arr.length ; // 返回 0
var y = arr[0] ; //返回 undefined
对象和数组的区别
- 在java script中,数组 使用数字索引
在java script中,对象使用命名索引
对象和数组的不同应用
如果希望元素名为字符串(文本),则使用对象
如果希望元素名数字,则使用数组
避免 new Array()
没有必要使用内建数组构造器 new Array()
识别数组变量
- 我们用 typeof 判断数组数据类型的时候,会返回 object ,因为数组是特殊的对象,但是还是区分不了对象和数字变量。我们可以使用数组的内建:Array.isArray()方法
数组方法
toString() 数组输出
- 将数组转为字符串值输出(元素间逗号分隔)
var arr = ["Huawei","China","Mirror"];
document.getElimentById("demo").innerHTML = arr.toString();
// 结果:Huawei,China,Mirror
join() 数组输出
- join(c):将所有数组元素结合为一个字符串;同时还可以规定分隔符 c
var arr = ["Huawei","China","Mirror"];
document.getElimentById("demo").innerHTML = arr.join("&");
// 结果:Huawei&China&Mirror
Popping()(删除元素)
- pop():从数组中删除最后一个元素
var arr = ["Huawei","China","Mirror"];
arr.pop(); //删除最后一个元素 Mirror
pop():返回被删除的那个数
Pushing()(添加元素)
- push():在数组的最后一个数组元素,向数组后添加一个新元素
var arr = ["Huawei","China","Mirror"];
arr.push("Refueling"); // 添加 Refueling到数组中,并返回最新数组