数组遍历相关算法

数组遍历相关算法👀

✔求数组总和、平均值

1
2
3
4
5
6
7
8
// 求总和、平均数
var arr = [1, 2, 3, 4, 5, 6];
var sum = 0,avg;
for (var i = 0; i < arr.length; i++) {
sum += arr[i];
}
avg = sum / arr.length;
console.log("总和:" + sum + ",平均数:" + avg);

✔找最大值

1
2
3
4
5
6
7
8
9
// 找最大值
var arr1 = [23, 15, 67, 54, 47, 58];
var max = arr1[0];
for (var i = 1; i < arr1.length; i++) {
if(arr1[i] > max) {
max = arr1[i]
}
}
console.log('最大值:'+max)

✔数组去重

1
2
3
4
5
6
7
8
9
// 数组去重
var arr = [1, 2, 3, 4, 5, 6, 3, 4, 5];
var arrNew = [];
for (var i = 0; i < arr.length; i++) {
if (!arrNew.includes(arr[i])) {
arrNew.push(arr[i]);
}
}
console.log(arrNew);

✔数组随机取样

1
2
3
4
5
6
7
8
// 随机取样(3项)
var arr2 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var res = [];
for (var i = 0; i < 3; i++) {
var n = parseInt(Math.random() * arr2.length)
res.push(n)
}
console.log(res)

✔数组冒泡排序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// 冒泡排序  需要比较 n-1 趟 , 从最后一个与倒数第二个先进行比较,如果后一个比前一个小,则交换位置,依次向前比较;一共需要比较 n(n-1)/2 次
var arr = [9,6,2,3]
// 循环比较n-趟
for (var i = 0 ; i < arr.length - 1 ; i++) {
// 两两项进行比较
for (var j = arr.length-1; j > 0 ; j--) {
if (arr[j] < arr[j-1]) {
var temp = arr[j]
arr[j] = arr[j-1]
arr[j-1] = temp
}
}
}
console.log(arr)

✔二维数组

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// 遍历二维数组
var arr = [
[23, 45, 56],
[67, 52, 11],
[73, 91, 37],
[88, 16, 59],
];
// 外层遍历
for (var i = 0; i < arr.length; i++) {
// 内层遍历
for (var j = 0; j < arr[i].length; j++) {
console.log(arr[i][j]);
}
}