一、创建数组
1-1 arr创建
var arr=[1,2,3];
1-2 使用构造函数的方式创建一个数组
var obj = new Array(1,2,3);
console.log(obj)
/* for in */
for(var key in arr){
console.log(arr[key])
}
二、数组元素
2-1 数组元素可以是字符,布尔值,数字
var a=Array("reing",1890,true)
2-2 数组元素是变量
var name="join"
var beatles=Array();
beatles[0]=name
console.log(name) //join
2-3 数组元素是另一个数组的元素,是另一个数组
var names=Array("raing","john","gepge","paul")
var beatles=Array();
beatles[0]=names[3]
console.log(names) // ["raing", "john", "gepge", "paul"]
var names=Array("raing","john","gepge","paul")
var beatles=Array();
beatles[0]=names
console.log(names) // ["raing", "john", "gepge", "paul"]
三、关联数组
var lennon=Array();
lennon["name"]="john"
lennon["year"]=1930
lennon["living"]=false
console.log(lennon) //[name: "john", year: 1930, living: false]
3-1 访问另一个数组的元素
var lennon=Array();
lennon["name"]="john"
lennon["year"]=1903;
lennon["living"]=false
var beatles=Array();
beatles[0]=lennon
console.log(lennon["name"]) //john
var lennon=Array("jong",2090,false)
var beatles=Array();
beatles[0]=lennon;
console.log(beatles[0][0]) //jong
四、伪数组
4-1 什么是伪数组
伪数组,就是像数组一样有 `length` 属性,也有 `0、1、2、3` 等属性的对象,看起来就像数组一样,但不是数。
伪数组特点:
1.拥有 length 属性。但是其length属性不会像真正的数组一样随着元素的添加删除自动更新
2.可以遍历伪数组,但是不具备数组的方法
var fakeArray = {
"0": "first",
"1": "second",
"2": "third",
length: 3
};
delete fakeArray["2"]; //fakeArray中的length不会发生更新
for (var i = 0; i < fakeArray.length; i++) {
console.log(fakeArray[i]);
}
// 此时fakeArray虽然具备length属性,但是不能直接调用数组的方法
// 伪数组存在的意义,是可以让普通的对象也能正常使用数组的很多算法,比如:
Array.prototype.join.call(fakeArray,'+');
Array.prototype.push.call(fakeArray, 'd')
//上面代码的含义:当前的fakeArray对象没有join方法,但是Array.prototype中有,可以将
Array.prototype.join中的this改为当前的fakeArray,然后用"+"号进行拼接
4-2 常见的伪数组