数组(一)——数组创建及操作

创建数组

1. 字面量
var BAT = ['Alibaba','Tencent','Baidu'];
var students = [{name:'ydt',age:23},{name:'yjx',age:40}];
var arr = ['a',123,true,null,undefined];
var arrInArr = [[1,2],[3,4,5]]; 
2. new Array
var arr = new Array();
var arrWithLength = new Array(100);//undefined*100
var arrLikesLiteral = new Array(true,false,null,1,2,'hi');//等价于[true,false,null,1,2,'hi'];

数组长度限制范围:0~2的23次方-1。

数组读写

var arr = [1,2,3,4,5];
arr[1];//2
arr.length;//5

arr[5] = 6;//可以动态添加数组长度
arr.length:;//6

数组元素增删

动态的,无需指定大小
//数组尾部增加元素
arr.push();
arr[arr.length] = 4;//equal to arr.push(4);
//数组头部增加元素
arr.unshift(0);

var = [1,2];
delete arr[0];//删除索引,值变为undefined
arr[0];//undefined , 长度不变。
arr.length;//2
0 in arr;//false,0索引已被删除,如果不执行delete,主动为arr[0]设置值为undefined,0 in arr将得到true。

//数组尾部元素删除
arr.pop();
arr.length--;//equal to arr.pop();

//数组头部元素删除
arr.shift();

数组迭代

1. 普通for循环
var i = 0,n=10;
var arr = [1,2,3,4,5];
for(;i<n;i++){
    console.log(arr[i]);
}
2. for in (不建议)

会迭代原型链上的属性

var i = 0,n=10;
var arr = [1,2,3,4,5];
for(i in arr){
    console.log(arr[i]);
}
3. for of
var i = 0,n=10;
var arr = [1,2,3,4,5];
for(i of arr){
    console.log(i);
}
4.Array.prototype.forEach
var arr = [1,2,3,4,5];
arr.forEach(function(value,index,arr){
    console.log(value);
})

只为数组指定大小,未设置值,则不存在索引属性(尽管里面的数组元素均为undefined),但若认为设置数组元素为undefined,如arr[0] = undefined,则存在索引属性。

猜你喜欢

转载自www.cnblogs.com/y-dt/p/9381281.html