1.1 创建数组
创建数组的基本方式有两种。
(1) 第一种是使用Array构造函数:
var colors1 = new Array(); //定义空数组
var colors2 = new Array(20); //定义长度为20的数组
2) 第二种方式是使用数组字面量表示法:
var colors = ['red','blue','green'];
var names = [];
推荐使用 [] 操作符,和使用Array的构造函数相比,编写代码的速度更快,效率更高。
1.2 读写数组
写--使用 [] 操作符将数据赋给数组:
var nums = [];
nums[0] = 1; //通过[]操作符赋值
for (var i = 0; i < 100; ++i) {
nums[i] = i+1;
}
读--使用 [] 操作符读取数组中的元素:
var arr6 = new Array({x:1, y:2}, h+5, h+9);
console.log(arr6[0]);
length属性反映的是当前数组中元素的个数,使用它,可以确保循环遍历了数组中的所有元素。
JavaScript 中 的数组也是对象,数组的长度可以任意增长,超出其创建时指定的长度。数组元素不连续的数组我们称为稀疏数组:
var arr = new Array(5);
arr[10] = 6;
arr[100] = 56;
console.log(arr);
console.log(arr.length); //数组元素一共是101个,即length为101。
1.3 数组元素
元素的添加:
(a) 使用 [] 操作符;
(b) arr.push(val),在数组末尾添加元素;
(c) arr.unshift(val),在数组开头添加元素
var arr = ['h', 'q', 'y', 'j'];
arr[4] = 'five';
arr.push('one');
arr.push('two_1', 'two_2');
arr.unshift('first');
arr.unshift('first_1', 'first_2');
//区别:[]执行完毕,返回所添加的元素值;push(val)/unshift(val)执行完毕后返回数组长度
元素的删除
(a) delete arr[i]操作
(b) arr.prop() 删除数组最后一个元素
(c) arr.shift() 删除第一个元素
var arr = ['h', 'q', 'y', 'j'];
delete arr[2];
arr.pop();
arr.shift();
delete arr[0];
//区别:
//delete执行完毕返回true或false,只删除元素值不会改变数组长度;
//pop()/shift()执行完毕返回删除的数组元素,改变数组长度
遍历数组元素
for循环对数组元素进行遍历:
var numbers = [1,2,3,5,8,13,21];
var sum = 0;
for (var i = 0; i < numbers.length; ++i) {
sum += numbers[i]; //通过[]操作符读取
}
console.log(sum);
1.4 数组复制
将一个数组赋给另外一个数组,有两种方式,分别为浅复制和深复制。
浅复制
var nums = [];
for (var i = 0; i < 100; ++i) {
nums[i] = i+1;
}
var samenums = nums;
nums[0] = 400;
console.log(samenums==nums)//true
console.log(samenums[0]);
这种行为被称为浅复制,新数组依然指向原来的数组。
深复制
var nums = [];
for (var i = 0; i < 100; ++i) {
nums[i] = i+1;
}
var length =nums.length; //数组长度
for(var i=0;i<length;i++){
samenums[i]=nums[i]
}
console.log(samenums==nums)//false
nums[0] = 55;
console.log(samenums[0]);