JS基础语法---函数练习part2---10个综合练习(运用:循环/数组/函数)
程序员文章站
2022-05-04 12:27:42
练习1:求2个数中的最大值 function getMax(num1, num2) { return num1 > num2 ? num1 : num2; } console.log(getMax(10, 20)); //console.log(getMax); //函数的代码 同: functio ......
练习1:求2个数中的最大值
function getmax(num1, num2) { return num1 > num2 ? num1 : num2; } console.log(getmax(10, 20)); //console.log(getmax); //函数的代码
同:
function getmax(num1, num2) { return num1 > num2 ? num1 : num2; } var num1 = 10; var num2 = 20; //函数外面的num和函数的形参num1不是同一个变量 var result = getmax(num1, num2); console.log(result); //同:console.log(getmax); //函数的代码
练习2:求3个数中的最大值
function getthreemax(x, y, z) { return x > y ? (x > z ? x : z) : y > z ? y : z; } console.log(getthreemax(10, 34, 90));
练习3:判断一个数是否是素数(质数)
ps:
1. 只能被1和自身整除,质数是从2开始
2. 用这个数字和这个数字前面的所有的数字整除一次(没有1的,没有自身的)
function isprimenumber(num) { for (var i = 2; i < num; i++) { if (num % i == 0) { //说明有一个数字整除了,就没有必要向后继续整除了,此时就已经验证出不是质数 return false; } } return true; } console.log(isprimenumber(7839) ? "是质数" : "不是质数");
同:
function isprimenumber(num) { for (var i = 2; i < num; i++) { if (num % i == 0) { return false; } } return true; } var result = isprimenumber(3940); if (result) { console.log("这是数字是质数"); } else { console.log("这是数字不是质数"); }
练习4:求两个数字的差
function getsub(x, y) { return x - y; } console.log(getsub(384, 2424));
练习5:求一组数字中的最大值
function getarraymax(array) { var max = array[0]; for (var i = 0; i < array.length; i++) { if (max < array[i]) { max = array[i]; } } return max; } var max = getarraymax([30, 20, 10, 49, 59]); console.log(max);
// var arr=[10,20,30,40,50];
// var max=getarraymax(arr);
// console.log(max);
// var max = getarraymax([10, 20, 30, 40, 50]); //可以直接把数组传到函数中的
// console.log(max);
练习6:求一组数字中的最小值
function getarraymax(array) { var min = array[0]; for (var i = 0; i < array.length; i++) { if (min > array[i]) { min = array[i]; } } return min; } //测试----调用函数并传入一个数组,把数组中的最小值直接显示出来 console.log(getarraymax([20, 49, 18, 60, 74, 73]));
练习7:求一组数字的和
function getarraysum(array) { var sum = 0; for (var i = 0; i < array.length; i++) { sum += i; } return sum; } console.log(getarraysum([1, 2, 3, 4, 5, 6, 7]));
练习8:求一个数组中的最大值和最小值还有和
ps:
1. 给我一个数组,我返回一个数组(最大值,最小值,和)
2. @param array参数是一个数组
3. @returns {*[]}返回值是一个数组,第一个元素值是最大值,第二个元素值是最小值,第三个元素值是和
function getarraymaxandminandsum(array) { var min = array[0]; //最小值 var max = array[0]; //最大值 var sum = 0; //和 for (var i = 0; i < array.length; i++) { sum += array[i]; //和 //最大值 if (max < array[i]) { max = array[i]; } // end if //最小值 if (min > array[i]) { min = array[i]; } //end if } //end for var array = [max, min, sum]; return array; } //测试 var resultarray = getarraymaxandminandsum([2, 3, 4, 5, 6, 7, 8, 9, 27]); console.log("最大值:" + resultarray[0]);//27 console.log("最小值:" + resultarray[1]);//2 console.log("和:" + resultarray[2]);//71
练习9:通过函数实现数组反转
function reversearray(arr) { for (var i = 0; i < arr.length / 2; i++) { var temp = arr[i]; arr[i] = arr[arr.length - 1 - i]; arr[arr.length - 1 - i] = temp; } return arr; } console.log(reversearray([1, 5, 10, 15, 20, 25, 30]));
实现:
练习10:通过函数实现冒泡排序
function sortarray(arr) { //控制比较的轮数 for (var i = 0; i < arr.length - 1; i++) { //控制每一轮的比较次数 for (var j = 0; j < arr.length - 1 - i; j++) { if (arr[j] < arr[j + 1]) { var temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } //end if } //end for } //end for return arr; } console.log(sortarray([0, 10, 4, 20, 400, 2, 45]));
实现: