流程控制语句练习题总结
一、求出数组中的最大值
let arr = [1, 2, 5, 7];
let max = 0;
for (i = 0; i < arr.length; i++) {
// console.log(max);
if (max < arr[i]) {
max = arr[i];
}
}
console.log(max);
首先生成一个数组,里面写一些数字,设一个变量为最大值,写一个循环,在循环里写一个if判断,判断max变量是否小于数组下标i这个数值,如果小于就替换掉max。,最后循环到最后得到最大值。
用到的知识:
数组的生成,变量的设置,for循环,if判断,变量赋值。
结果如图所示:
二、将数组中的值转为字符串,并用符号 " | " 分隔
let arr = ["张三", "李四", "王五", "赵六", "孙七"];
console.log(arr);
let arrs=[];
for (let i = 0; i < arr.length; i++) {
arrs += arr[i]+"|";
}
console.log(arrs);
首先生成一个数组,包含一些字符串,然后再生成一个空数组,接着写一个循环let一个变量i,然后在循环里让空数组加等于arr的下标i,再加一个竖线,最后在循环外打印出最后的arrs空数组。
用到的知识:
设置数组及空数组,for循环,+=(先加一个数后再赋值),拼接字符串,字符串“”
结果如图所示:
三、新建一个数组,里面随机存放10个整数(1-10)
let arr = [];
for (let i = 0; i < 10; i++) {
let num = Math.floor(Math.random() * (10 - 1 + 1)) + 1;
arr[arr.length] = num;
}
console.log(arr);
首先,新建一个空数组,然后写一个for循环,利用random写一个随机数的生成,并且floor返回最大整数,赋值到num变量上,然后让arr的下标长度的内容等于这个随机数,每次循环都将生成一个随机数,将随机数放到arr的数组里,每次都放到这个数组的最后一个,循环十次,得到10个随机整数。
用到的知识:
random随机数,返回最大整数floor,数组的长度,
结果如图所示:
四、选出数组中大于10的数
let arr = [12, 3, 14, 8, 43, 33];
let arrs = [];
for (let i = 0; i < arr.length; i++) {
if (arr[i] > 10) {
arrs[arrs.length] = arr[i];
}
}
console.log(arrs);
首先,新建一个数组,写一些数字,然后再建一个空数组,接着写一个for循环,在循环里写一个判断,判断这个数组的下标i的数值是否大于十,如果大于十,就把这个数放到那个空数组里,依次累计循环,获得大于10的所有数。
用到的知识:
数组的设置,if判断
结果如图所示:
五、数组去重
let arr = [1, 4, 66, 55, 88, 66];
console.log(arr);
for (let i = 0; i < arr.length; i++) {
for (let j = 0; j < arr.length; j++) {
if (arr[i] == arr[j] && i!=j) {
arr.splice(j, 1);
}
}
}
console.log(arr);
首先写一个数组,里面放一些数字,然后写两层for循环,在最里层的for循环中写一个if判断,判断这个空数组下标i的内容是否等于下标j,并且i不等于j,在符合这个判断条件后,删除下标j以后的一个元素,直到循环比对完整个数组。
用到的知识:
for循环嵌套,数组删除元素的方法,并且(&&),不等!=
结果如图所示:
六、数组反转
let arr = [1, 2, 3, 4, 5];
console.log(arr);
let arrs = [];
for (let i = arr.length - 1; i >= 0; i--) {
arrs.push(arr[i]);
}
console.log(arrs);
首先生成一个数组,里面写一些数字,然后再写一个空数组,接着写一个for循环,循环arr数组的长度,在循环里,把arr下标i的数值复制到空数组里,最后在循环外打印,就可以得到翻转后的数组了
用到的知识:
push,数组
结果如图所示:
七、数组冒泡排序
let arr = [2, 46, 58, 69, 24];
console.log(arr);
for (let i = 0; i < arr.length - 1; i++) {
for (let j = 0; j < arr.length - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
let num = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = num;
}
}
}
console.log(arr);
首先写一个数组,里边写一些数字,然后写一个for循环,再写一层for循环,在最里面的for循环里写一个if判断,判断arr的j下标内容是否大于j+1,当符合这个条件,然后let一个num的变量等于arr的j下标内容(临时存储一下这个下标的内容),然后arr的j下标等于j+1,最后让num等于j+1,等于是j与j+1调换了位置。
用到的知识:
for循环嵌套两层,if判断,块级作用域
结果如图所示:
八、求出数组元素和
let arr = [1, 2, 3];
let num = 0;
for (let i = 0; i < arr.length; i++) {
num += arr[i];
}
console.log(num);
生成一个数组,里面写一些数字,然后设一个变量num,接着写一个for循环,在循环里写,num+=arr[i]。每次循环,都和上一次的数值相加,相加后再赋值。
用到的知识:
+=先加后赋值,数组,for循环
结果如图所示:
九、求出数组中的平均值
let arr=[1,2,3,4,5];
let num=0;
let average=0;
for(let i=0;i<arr.length;i++){
num += arr[i];
}
average=num/arr.length;
console.log(average);
首先生成一个数组,里面写一些数字,然后再设一个num变量,接着再设一个平均值的变量为零,接着写一个for循环,循环arr数组的长度,在循环里,让num变量+=arr下标i的内容(数组里的内容相加起来,赋值到num变量),后在循环外让平均值等于,num变量除以数组的长度
用到的知识:
数组,/除,+=先相加后赋值。
结果如图所示:
十、打印出数组的奇数
let arr = [1, 2, 3, 4, 5];
let arrs=[];
for (let i = 0; i < arr.length; i++) {
if (arr[i] % 2 !== 0) {
console.log(arr[i]);
arrs.push(arr[i]);
}
}
console.log(arrs);
首先设置一个数组,里边写一些数字,然后再写一个空数组,接着写一个for循环,在循环里写一个if判断,判断arr的下标i除以二余的数是否不等于零(也就是判断是否为奇数)。如果符合条件,将arr的下标i的内容放到空数组里,最后在循环外打印出最后的结果。
用到的知识:
数组,if判断,判断奇数,!==全不等于,%取模
结果如图所示:
十一、计算数组中能被3整除的偶数和
let arr = [1, 2, 3, 4, 5, 6];
let sum = 0;
for (let i = 0; i < arr.length; i++) {
if (arr[i] % 2 === 0 && arr[i] % 3 === 0) {
sum += arr[i];
}
}
console.log(sum);
首先设置一个数组,里面写一些数字,然后设一个变量sum(用于保存偶数的和),接着写一个for循环,在循环里写一个if判断,判断arr的下标i÷2后的余数是否全等于零,并且arr的下标I÷3后的余数是否全等于零,如果符合判断条件,则sum+=arr的下标i内容。
用到的知识:
数组,+=先相加后赋值,&&并且,%取模,===全等
结果如图所示:
十二、将数组中不为0的数据存入新数组
let arr = [0, 1, 0, 2, 0, 3, 4, 0];
let arrs = [];
for (let i = 0; i < arr.length; i++) {
if (arr[i]!== 0) {
arrs.push(arr[i]);
}
}
console.log(arrs);
首先设置一个数组,里面写一些数字,然后再写一个空数组,接着写一个for循环,在循环里写一个if判断,判断arr的下标i内容是否不等于零,如果符合条件,将arr的下标数放到空数组里,最后在循环外打印出最后的数组结果。
用到的知识:
数组,for循环,!==全不等,push放入元素
结果如图所示:
十三、数组点名,点到从数组中删除(就是使用随机数生成对应数组的下标,然后进行删除指定下标的元素)
let arr = ["张三", "李四", "王五", "赵六", "孙七"];
while (arr.length > 0) {
// 生成一个随机下标
let num= Math.floor(Math.random() * arr.length);
// 点到的名字
let name = arr[num];
console.log("点到的名字是: " + name);
// 从数组中删除点到的名字
arr.splice(num, 1);
}
console.log("点名结束");
首先设置一个数组,然后在数组里写几个字符串,然后写一个while循环,条件为arr数组的长度 大于0,当长度大于0时就进行循环,循环里的操作为,首先生成一个随机数赋值num上,然后再设一个变量为name,将arr下标num的内容字符串赋值给name,然后使用splice,删除掉点到的名字。
用到的知识:
数组,splice删除数组元素,随机数(random),返回最大整数(floor)
结果如图所示: