携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第20天,点击查看活动详情
数组元素的添加
数组元素添加有两种方法:
- 修改数组长度
- 修改索引号
修改数组长度
//修改数组长度
var arr = ['red', 'blue', 'green', 'pink'];
console.log(arr.length);//4
arr.length = 10;
console.log(arr);
console.log(arr[7]);//undefined
ps:打印数组中没有的数组元素会返回undefined
修改索引号
//修改索引号
var arr1 = ['red', 'blue', 'green', 'pink'];
arr1[4] = 'purple';
console.log(arr1);//['red', 'blue', 'green', 'pink', 'purple']
arr1[5] = 'yellow';
console.log(arr1);
arr1[0] = 'black';//替换第一个数组元素
console.log(arr1);// ['black', 'blue', 'green', 'pink', 'purple', 'yellow']
ps:对数组进行的操作都是通过索引号来实现的
两种数组
1、稀疏数组?
稀疏数组可以理解为数组元素之间有空隙,数组长度大于数组元素个数,不建议创建稀疏数组
2、密集数组?
密集数组也就是我们常用的数组,数组元素之间没有空隙,可以通过索引号精确的查找各个数组元素的位置,我们平常创建的数组就是密集数组,数组长度等于数组元素的个数
几个例题
求数组中最大的数组元素?
var arr = [2, 6, 1, 77, 52, 25, 7];//字面量创建数组
var max = arr[0];//假设第一个数组元素最大
for (var i = 1; i <= arr.length; i++) {
if (arr[i] > max) {
max = arr[i];
//遍历数组元素,若遍历到的数组元素大于max,则交换元素
}
}
console.log('数组中最大值是' + max);//数组中最大值是77
其实这个例题的核心算法就是一个if判断语句,大于则交换,其他情况不做处理
数组转换为字符串?
var arr = ['red', 'blue', 'green', 'pink'];//字面量创建数组
var str = '';//声明一个字符串变量,下面要用到
for (var i = 0; i < arr.length; i++) {
str += arr[i] + '|';//通过遍历用'|'隔开
}
console.log(str);//red|blue|green|pink|
核心算法for语句遍历,直接用赋值运算符和字符串拼接的方式转换为字符串,方便简洁。
给大家留两个小题: 反转数组和冒泡排序(从小到大排序)
提示:
- 反转数组核心算法:
arr2[i] = arr1[arr1.length - i - 1] - 冒泡排序:双重for循环,相邻元素进行比对,若前者大于后者,则交换(重新声明一个临时变量)