写一个函数,该函数用于判断某个数是不是奇数
/*** 判断一个数是不是奇数* @param {number} n 要判断的数字* @returns {boolean}*/function isOdd(n) {return n % 2 !== 0;}
写一个函数,该函数用于判断某个数是不是素数
/*** 判断一个数是不是素数* @param {*} n*/function isPrime(n) {if (n < 2) {return false;}for (var i = 2; i < n; i++) {if (n % i === 0) {return false;}}return true;}
写一个函数,该函数用于对数组求和
/*** 对数组求和* @param {*} arr*/function sumOfArray(arr) {var sum = 0;for (var i = 0; i < arr.length; i++) {sum += arr[i];}return sum;}
写一个函数,该函数用于得到数组中的最大值
/*** 得到数组中的最大值,如果数组长度为0,则返回undefined* @param {*} arr*/function maxOfArray(arr) {if (arr.length === 0) {return;}var max = arr[0];for (var i = 1; i < arr.length; i++) {if (arr[i] > max) {max = arr[i];}}return max;}
得到数组中的最小值,如果数组长度为0,则返回undefined
/*** 得到数组中的最小值,如果数组长度为0,则返回undefined* @param {*} arr*/function minOfArray(arr) {if (arr.length === 0) {return;}var min = arr[0];for (var i = 1; i < arr.length; i++) {if (arr[i] < min) {min = arr[i];}}return min;}
判断一个数组是不是稀松数组
/*** 判断一个数组是不是稀松数组* @param {*} arr*/function hasEmptyInArray(arr) {// 稀松数组的特点:下标连续for (var i = 0; i < arr.length; i++) {if (!(i in arr)) {return true;}}return false;}
判断某年是不是闰年
/*** 判断某年是不是闰年* @param {*} year*/function isLeap(year) {// 4年一闰,百年不闰;400年一闰return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;}
得到某年某月的天数
/*** 得到某年某月的天数* @param {*} year* @param {*} month*/function getDays(year, month) {if (month === 2) {return isLeap(year) ? 29 : 28;} else if (month < 8 && isOdd(month) || month >= 8 && !isOdd(month)) {return 31;} else {return 30;}}
得到数组中出现频率最高的数字和频率
/*** 得到数组中出现频率最高的数字和频率* 返回一个对象* @param {*} arr*/function getTopFreqInArray(arr) {var records = {}; //记录出现频率for (var i = 0; i < arr.length; i++) {var n = arr[i];if (records[n]) {records[n]++;} else {records[n] = 1;}}var result; //记录最终结果的对象for (var prop in records) {if (!result || records[prop] > result.frequency) {result = {number: +prop,frequency: records[prop]};}}return result;}
验证哥德巴赫猜想
任一大于2的偶数都可写成两个质数之和,比如:8 = 3 + 5。让用户输入一个大于2的整数,输出其等于哪两个素数相加。
// 验证哥德巴赫猜想function begin() {var num = +prompt("请输入一个大于2的偶数");if (isNaN(num) || num <= 2 || isOdd(num)) {console.log("输入有误");return;}//输入正确for (var i = 2; i <= num - 2; i++) {var j = num - i;//判断两个数字是否都是素数if (isPrime(i) && isPrime(j)) {console.log(`${num} = ${i} + ${j}`);}}}begin();
让用户输入一个年份,输出该年每个月的天数
// 获取某年某月的天数(function begin() { // begin 写或不写,效果都一样。var year = +prompt("请输入一个年份(1990~2100)");if (isNaN(year) || year < 1990 || year > 2100) {console.log("输入有误");return;}//输入正确for (var m = 1; m <= 12; m++) {console.log(`${year}年${m}月:${getDays(year, m)}`);}}());
