数组
数组是由一组数据的汇合,数组中的每个数据被称为元素,数组中能够寄存任意类型的元素。是存储在单个变量下的优雅形式。
如何创立数组
- 应用 new 关键字创立数组
- 应用字面量的形式创立数组
- 数组中每个元素之间用逗号相隔
应用 new 关键字创立数组
应用 new 创立关键字
<script>
var arr = new Array(); // 创立一个空数组
console.log(arr)
</script>
应用自定义的形式创立数组
var 数组名 = [ ];
<script>
// 创立一个数组
var arr = [5, 20, 56, "hello", "word"];
console.log(arr)
</script>
数组的应用办法
获取数组元素
通过索引 (下标) 能够获取批改元素,留神:索引是从 0 开始。语法:数组名[索引]
案例: 打印数组中的每个元素
<script>
var arr = ["星期一", '星期二', '星期三', '星期四', "星期五", "星期六", '星期日'];
console.log(arr[0]);
console.log(arr[1]);
console.log(arr[2]);
console.log(arr[4]);
console.log(arr[5]);
console.log(arr[6]);
</script>
遍历数组
遍历数组:简略而言,就是将数组中的每一项元素从头到尾拜访一遍,用 for 循环进行遍历,初始化变量当作索引应用。
案例:遍历下列数组
<script>
var arr = ['关羽', '张飞', '赵云', '马超', '黄忠'];
for (var i = 0; i < arr.length; i++) {console.log(arr[i])
}
</script>
获取数组的长度
语法:数组名.length 能够获取数组的长度,留神数组的长度和索引没有任何区别
获取以下数组的长度
<script>
var arr = ['20', '50', true, false, 'hello', "尧子陌", '临风笑却世间'];
console.log(arr.length) // 获取数组的长度
</script>
数组的案例
求数组的平均值
思路如下
- 申明一个求和的变量及求平均数的变量
- 遍历数组中的每一项与求和的变量相加
- 最初和除以数组的个数便得出平均值
<script>
var arr = [5, 10, 20, 90, 850, 60]; // 申明一个数组 arr
var sum = 0; // 申明一个求数组的变量 sum
var average = 0; // 申明一个求平均数的变量 average
for (var i = 0; i < arr.length; i++) {sum = sum + arr[i]
}
console.log(sum); // 数组的和
var average = sum / arr.length;
console.log(average) // 数组的平均值
</script>
求数组中的最大值
思路如下
1. 先申明一个数组
2. 申明一个最大值变量 max
3. 默认把数组元素 arr[0]赋值给 max
4. 遍历数组,每个数组元素与 max 相比拟,若数组元素大于 max,则将数组元素赋值给 max,若数组元素比 max 小,则进行下一轮比拟
5. 得出后果
<script>
var arr = [5, 50, 63, 96, 17, 85];
var max = 0; // 申明一个最大值 max
max = arr[0]
for (var i = 0; i < arr.length; i++) {if (max < arr[i]) {max = arr[i]
}
}
console.log(max) // 得出最大值
</script>
数组宰割成字符串
1. 申明一个变量 str 来存储切割好的字符串
2. 遍历数组,将数组的每一项与字符串拼接
3. 别忘前面要加上本义符(本义符用变量名更适合)
<script>
var strArr = ['yellow', 'red', 'hello', 'like'];
var str = '' // 申明一个变量来存储拼接好的字符串
var step = '!' // 申明一个切割符的变量
for (var i = 0; i < strArr.length; i++) {str = str + strArr[i] + step
}
console.log('数组宰割好的字符串:' + str)
</script>
如何新增数组元素
通过 length 属性来新增属性
留神:不要间接给数组名赋值,否则会失去数组的全副数据
empty 是空元素的意思
<script>
var arr = [50, 50, 60, "hello", "word", '惊鸿'];
console.log('原始数组的长度' + arr.length) // 获取数组的长度
console.log(arr)
arr.length = 20;
console.log('新增数组的长度' + arr.length) // 获取数组的长度
console.log(arr)
</script>
通过索引来新增数据元素
<script>
var arr = [50, 50, 60, "hello", "word", '惊鸿'];
arr[6] = "尧子陌"
arr[7] = "临风笑却世间"
console.log(arr);
console.log('新增数组元素的数组长度:' + arr.length)
</script>
新建一个数组 外面寄存 1~10 的整数
- 申明一个空数组
- 循环外面的计数器 i, 能够当作数组元素存入
- 索引是从 0 开始的,因而计数器从 0 开始,但存入的数组元素要 i +1
<script>
var arr = [];
for (var i = 0; i < 10; i++) {arr[i] = i + 1;
}
console.log('存入 1~10 之间的整数:', arr)
</script>
筛选数组
两种办法
- 通过新增变量的形式实现筛选数组
- 通过 lengh 属性可实现筛选数组
通过新增变量的形式实现筛选数组
通过新增变量自增的形式实现数组筛选
<script>
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] != 0) {newArr[j] = arr[i]
j++
}
}
console.log('实现筛选数组后的新数组:',newArr)
</script>
通过 length 属性也能够实现数据筛选
通过 length 属性比拟不便,新数组的 lenth 属性为 0,但通过旧数组合乎判断条件的数组元素存入后,便能够得出后果
<script>
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)
</script>
反转数组
思路
1. 先申明一个新数组
2. 旧数组采纳 arr.length-1 新数组采纳 newArr.lenth
3. 采纳 i -- 的形式
<script>
var arr = ['red', 'green', 'pink', 'purple'];
var newArr = [] // 申明一个新数组
for (var i = arr.length - 1; i >= 0; i--) {newArr[newArr.length] = arr[i]
}
console.log('反转之后的新数组:', newArr)
</script>
算法
察看执行过程,发现法则,写出可用的代码
冒泡排序
外围:一次比拟两个值,发现程序谬误将它们重新排列
冒泡排序是一种算法,将一系列数据依照依照肯定的程序进行排列显示(从小到大或从大到小)
将数组的数字按从小到大排列
<script>
/*
* 将下列数组的数组元素按从小到大的顺序排列
*/
var arr = [5, 4, 3, 2, 1];
for (var i = 0; i <= arr.length - 1; i++) { // 外层负责趟数
for (var j = 0; j <= arr.length - i - 1; j++) { // 内层负责每次替换的次数
if (arr[j] > arr[j + 1]) {
var temp;
temp = arr[j]
arr[j] = arr[j + 1]
arr[j + 1] = temp
}
}
}
console.log(arr)
</script>
留神:次数和索引号没有任何关系