JS基础练习题

<!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>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海盐柠青

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值