1、求一组数中的最大值和最小值,以及所在位置(最大值和最小值在这组数中的位置)
1 var numbers = [120, 13, 101, 88, 10, 25];
2 var max = numbers[0];
3 var min = numbers[0];
4 // 最大值的索引
5 var maxIndex = 0;
6 // 最小值的索引
7 var minIndex = 0;
8
9 for (var i = 1; i < numbers.length; i++) {
10 // 找大的数
11 if (max < numbers[i]) {
12 max = numbers[i];
13 maxIndex = i;
14 }
15 // 找小的数
16 if (min > numbers[i]) {
17 min = numbers[i];
18 minIndex = i;
19 }
20 }
21 console.log(max, min);
22 console.log(maxIndex, minIndex);
2、将字符串数组用 | 或其他符号分割
1 var names = ['西伯利亚狼', '灰狼', '土狼', '大尾巴狼', '狗头老高'];
2 // 往第二个元素之前加分隔符
3 var seperator = '|'; // 分隔符
4 var str = names[0];
5 for (var i = 1; i < names.length; i++) {
6 str += seperator + names[i];
7 }
8 console.log(str);
3、翻转数组 1,2,3,4 -> 4,3,2,1
1 var numbers = [4, 5, 7, 9]; // 生成一个新的数组 数组中存储 9 7 5 4
2 var newArray = [];
3 for (var i = numbers.length - 1; i >= 0; i--) {
4 newArray[newArray.length] = numbers[i];
5 }
6 console.log(newArray);
4、冒泡排序
1 // 冒泡排序 -- 从小到大的排序
2 var numbers = [1, 3, 5, 2, 4];
3 var count = 0; // 记录循环的次数
4 // 外层循环:控制趟数,每一趟找到一个最大值
5 for (var i = 0; i < numbers.length - 1; i++) {
6 count++;
7 // 内层循环:控制比较的次数,并且判断两个数的大小,把大的数往后移动,小的数往前移动
8 for (var j = 0; j < numbers.length - 1 - i; j++) {
9 count++;
10 // 两两比较 从小到大排序
11 if (numbers[j] > numbers[j + 1]) {
12 // 交换位置
13 var tmp = numbers[j];
14 numbers[j] = numbers[j + 1];
15 numbers[j + 1] = tmp;
16 }
17 }
18 }
19 console.log(numbers);
20 console.log(count);
5、冒泡排序——优化
1 var numbers = [1, 3, 5, 2, 4];
2 var count = 0; // 记录循环的次数
3 // 外层循环:控制趟数,每一趟找到一个最大值
4 for (var i = 0; i < numbers.length - 1; i++) {
5 // 假设数据排好顺序了
6 var isSort = true;
7 count++;
8 // 内层循环:控制比较的次数,并且判断两个数的大小,把大的数往后移动,小的数往前移动
9 for (var j = 0; j < numbers.length - 1 - i; j++) {
10 count++;
11 // 两两比较 从小到大排序
12 if (numbers[j] > numbers[j + 1]) {
13 // 没有排好
14 isSort = false;
15 // 交换位置
16 var tmp = numbers[j];
17 numbers[j] = numbers[j + 1];
18 numbers[j + 1] = tmp;
19 }
20 }
21 // 某一趟结束,判断一下排序是否结束
22 // 如何判断排序是否排好,根据是否发生了数据交换,如果发生了数据交换说明没有排好
23 if (isSort) {
24 // 如果排好顺序
25 break;
26 }
27 }
28 console.log(numbers);
29 console.log(count);