<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="common.js"></script>
</head>
<body>
<script>
// 数组的冒泡排序
var arr = [2, 5, 21, 33, 23, 45, 34, 65, 40];
for (var i = 0; i < arr.length; i++) {
for (var j = 0; j < arr.length - i; j++) {
if (arr[j] > arr[j + 1]) {
var temp = arr[j]; //定义一个临时变量temp
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
document.write(arr);
// 数组的选择排序
var arr = [12, 3, 569, 78, 0, -56, 1223, 11, 16, 13, 1];
for (var i = 0; i < arr.length; i++) {
var minIndex = i; // 定义最小值的下标
var min = arr[minIndex]; // 通过定义的最小值下标查看定义的最小值
// 因为是从定义的最小值的后边和定义的最小值进行比较
// 这里的起始条件是i + 1
for (var j = i + 1; j < arr.length; j++) {
// 定义的最小值大于其它的元素
if (arr[minIndex] > arr[j]) {
minIndex = j; // 记住查找到的元素的下标
arr[minIndex] = arr[j]; // 记住查找到的元素
}
}
// 通过上边的循环,确定了minIndex 就是查找到的最小值
// 查找到的最小值不等于定义的最小值,进行数据交换
if (minIndex !== i) {
var temp = arr[minIndex];
arr[minIndex] = arr[i];
arr[i] = temp;
}
}
document.write('<br />' + arr);
// 编写函数map(arr) 把数组中的每一位数字都增加30%,并返回一个新数组
var arr = [10, 100, 1000]
function map() {
for (var i = 0; i < arr.length; i++) { //定义变量i,
arr[i] *= 1.3 //在原数组的基础上加30%
}
return arr; //返回数组重新循环,直到条件不符合
}
document.write('<br />' + map(arr)) // [13, 130, 1300]
/* 山上有一口缸可以装50升水,现在有15升水。老和尚叫小和尚下山挑水,
每次可以挑5升。问:小和尚要挑几次水才可以把水缸挑满?通过编程解决这个问题。 */
var arr = [15];
for (var i = 1; ; i++) {
arr.push(5)
var sum = array_sum(arr);
if (sum == 50) {
break;
}
}
console.log(arr.length - 1);
/* 定义一个含有30个整型元素的数组,按顺序分别赋予从2开始的偶数;然后按顺序每五个数求出一个平均值,放在另一个数组中并输出。试编程。 */
var arr = new Array(30);
//按顺序分别赋予从2开始的偶数
for (var i = 1; i <= 30; i++) {
var num = i * 2;
// arr.push(num);
// arr[0]=2
// arr[1]=4
arr[i - 1] = i * 2;
}
console.log(arr);
var sum = 0;
for (var i = 0; i < arr.length; i++) {
var item = arr[i];
// 数组的元素位置 i ,
// i+1
sum = sum + item;
if ((i + 1) % 5 == 0) {
// if执行第一次 获取到 第5个数的时候 执行
// if执行第二次 获取到 第10个数的时候 执行
var av = sum / 5; //
console.log(av);
//每次在是5的倍数,求平均值以后, 接下来要结算 接着的5个数的和,sum得从0开始
sum = 0;
}
// 2 4 6 8 10 -> 这个时候 求这个5个数 的和,平均值
// 12 14 16 18 20 -> 这个时候 求这个5个数 的和,平均值
}
/* 通过循环按行顺序为一个5×5的二维数组a赋1到25的自然数,然后输出该数组的左下半三角。试编程。 */
// 二维数组--数组的元素 是一个数组
var arr2 = [
[9, 8],
[5, 4],
];
// 通过下标可以 获取一个元素
console.log(arr2[0][1]); //获取 第一行的,第二个元素
console.log(arr2[0][0]);
console.log(arr2[1][0]);
console.log(arr2[1][1]);
for (var i = 0; i < arr2.length; i++) {
//i=0
// j=0 1
var item = arr2[i]; //是一个内层的数组
console.log(item);
for (var j = 0; j < item.length; j++) {
console.log(item[j]);
}
}
// 一维数组
var arr = [1, 2, 3, 4, 5];
var resArr = [];
// 循环,resArr 添加5个数组
for (var i = 0; i < 5; i++) {
var tempArr = [];
// tempArr添加5个元素 ,第一个元素 1+5*0
// tempArr添加5个元素 ,第二个元素 2+5*0
for (var j = 1; j <= 5; j++) {
var n = j + i * 5;
tempArr.push(n);
}
resArr.push(tempArr);
}
console.log(resArr);
var resArr2 = [];
var itemArr = [];
/*
循环出 1-25之间所有数字, 每5个数组 添加到同一个数组
*/
for (var i = 1; i <= 25; i++) {
itemArr.push(i);
if (i % 5 === 0) {
resArr2.push(itemArr);
itemArr = [];
}
}
console.log(resArr2);
// resArr2
for (var i = 0; i < resArr2.length; i++) {
var itemArr = resArr2[i];
for (var j = 0; j < i + 1; j++) {
document.write(itemArr[j] + " ");
}
document.write("<br/>");
}
</script>
</body>
</html>