初始数组
一、初识数组
1、创建数组
创建数组的两种常见方式的用法:
- 使用“new Array()”创建数组
- 使用“[ ]”字面量来创建数组
// 使用new Array()创建数组
var arr1 = new Array();
// 使用字面量来创建数组
var arr1 = [];
2、访问数组元素
使用索引来访问数组中的元素,索引是一个数字,从0开始。
var arr = ['苹果', '橘子', '香蕉', '桃子'];
console.log(arr[0]); // 输出结果:苹果
console.log(arr[1]); // 输出结果:橘子
console.log(arr[2]); // 输出结果:香蕉
console.log(arr[3]); // 输出结果:桃子
console.log(arr[4]); // 输出结果:undefined(数组元素不存在)
3、数组遍历
数组遍历是将数组中的元素全部访问一遍,可以利用for循环来实现,在for循环中让索引从0开始自增。
如果数组元素比较多时,计算数组元素的个数不太方便,这时候可以利用数组名.length来快速地获取数组长度。
<script>
var arr=['red','green','blue']
for(var i=0;i<3;i++){
console.log(arr[i]); //i计数器当索引号使用
} //打印结果为 ['red','green','blue']
</script>
<script>
var arr=[1,2,3,4,5,6,7]
for(var i=0;i<arr.length;i++){ //利用数组名.length来快速地获取数组长度
console.log(arr[i]); //打印结果为[1,2,3,4,5,6,7]
}
</script>
二、数组元素操作
1、修改数组长度
使用“数组名.length”可以获取或修改数组的长度。
var arr1 = [1, 2];
arr1.length = 4; // 大于原有长度
console.log(arr1); // 输出结果:(4) [1, 2, empty × 2]
var arr2 = [1, 2, 3, 4];
arr2.length = 2; // 小于原有长度
console.log(arr2); // 输出结果:(2) [1, 2]
var arr3 = [1, 2];
var arr4 = [1];
arr4.length = 4; // 修改数组的长度为4
console.log(arr4); // 输出结果:(4) [1, empty × 3]
console.log(arr4[1]); // 输出结果:undefined
2、新增或修改数组元素
如果给定的索引超过了数组中的最大索引,则表示新增元素,否则表示修改元素。
var arr = ['red', 'green', 'blue'];
arr[3] = 'pink'; // 新增元素
console.log(arr); // (4) ["red", "green", "blue", "pink"]
arr[0] = 'yellow'; // 修改元素
console.log(arr); // (4) ["yellow", "green", "blue", "pink"]
3、筛选数组元素
var arr = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7];
var newArr = [];
var j = 0;
for (var i = 0; i < arr.length; i++) {
if (arr[i] >= 10) {
newArr[j++] = arr[i]; // 新数组索引号从0开始,依次递增
}
}
console.log(newArr); // 输出结果:(3) [77, 52, 25]
4、删除指定的数组元素
例子:将数组[2, 0, 6, 1, 77, 0, 52, 0, 25, 7]中的0去掉后,形成一个不包含0 的新数组。
1.需要一个新数组用于存放筛选之后的数据
2.遍历原来的数组,把不是0的数组添加到新数组里面,采用数组名+索引的形式接收数据
3.新数组里面的个数,用length不断累加
var arr = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7];
var newArr = [];
for (var i = 0; i < arr.length; i++) {
if (arr[i] != 0) {
newArr[newArr.length] = arr[i];
}
}
console.log(newArr); // 输出结果:(7) [2, 6, 1, 77, 52, 25, 7]
5、反转数组元素顺序
例子:将数组[‘red’, ‘green’, ‘blue’, ‘pink’, ‘purple’]的内容反过来存放
1、声明一个新数组newArr;
2、把旧数组索引号第4个取过来(arr.length-1).给新数组索引号第0个元素
3、采取递减的方式
var arr = ['red', 'green', 'blue', 'pink', 'purple'];
var newArr = [];
for (var i = arr.length - 1; i >=0; i--) {
newArr[newArr.length] = arr[i];
}
// 输出结果:(5) ["purple", "pink", "blue", "green", "red"]
console.log(newArr);
三、二维数组
1、创建二维数组
创建二维数组的两种常见方式的用法:
(1)使用“new Array()”字面量来创建数组
var info = new Array(
new Array('Tom', 13, 155),
new Array('Lucy', 11, 152)
);
console.log(info[0]); // 输出结果:(3) ["Tom", 13, 155]
console.log(info[0][0]); // 输出结果:Tom
(2)使用“[ ]”字面量来创建数组
var nums = [[1, 2], [3, 4]];
console.log(nums[0]); // 输出结果:(2) [1, 2]
console.log(nums[1][0]); // 输出结果:3
2、二维数组求和
二维数组求和是对二维数组进行遍历,需要用双层循环来控制二维数组中的元素的索引值。
var arr = [[1, 5, 6], [10, 8]];
var sum = 0;
for (var i = 0; i < arr.length; i++) { // 遍历arr数组
for (var j = 0; j < arr[i].length; j++) { // 遍历arr[i]数组
sum += arr[i][j]; // 二维数组元素累加
}
}
console.log(sum); // 输出结果:30
3、二维数组转置
二维数组的转置指的是将二维数组横向元素保存为纵向元素。
转置规律:
res[0][0] = arr[0][0]
res[0][1] = arr[1][0]
res[0][2] = arr[2][0]
res[0][3] = arr[3][0]
var arr = [['a', 'b', 'c'], ['d', 'e', 'f'], ['g', 'h', 'i'], ['j', 'k', 'l']];
var res = [];
for (var i = 0; i < arr[0].length; i++) {
res[i] = [];
for(var j = 0; j < arr.length; j++) {
res[i][j] = arr[j][i]; // 为二维数组赋值
}
}
console.log(res);
打印结果为: