写一个函数,该函数用于判断某个数是不是奇数

  1. /**
  2. * 判断一个数是不是奇数
  3. * @param {number} n 要判断的数字
  4. * @returns {boolean}
  5. */
  6. function isOdd(n) {
  7. return n % 2 !== 0;
  8. }

写一个函数,该函数用于判断某个数是不是素数

  1. /**
  2. * 判断一个数是不是素数
  3. * @param {*} n
  4. */
  5. function isPrime(n) {
  6. if (n < 2) {
  7. return false;
  8. }
  9. for (var i = 2; i < n; i++) {
  10. if (n % i === 0) {
  11. return false;
  12. }
  13. }
  14. return true;
  15. }

写一个函数,该函数用于对数组求和

  1. /**
  2. * 对数组求和
  3. * @param {*} arr
  4. */
  5. function sumOfArray(arr) {
  6. var sum = 0;
  7. for (var i = 0; i < arr.length; i++) {
  8. sum += arr[i];
  9. }
  10. return sum;
  11. }

写一个函数,该函数用于得到数组中的最大值

  1. /**
  2. * 得到数组中的最大值,如果数组长度为0,则返回undefined
  3. * @param {*} arr
  4. */
  5. function maxOfArray(arr) {
  6. if (arr.length === 0) {
  7. return;
  8. }
  9. var max = arr[0];
  10. for (var i = 1; i < arr.length; i++) {
  11. if (arr[i] > max) {
  12. max = arr[i];
  13. }
  14. }
  15. return max;
  16. }

得到数组中的最小值,如果数组长度为0,则返回undefined

  1. /**
  2. * 得到数组中的最小值,如果数组长度为0,则返回undefined
  3. * @param {*} arr
  4. */
  5. function minOfArray(arr) {
  6. if (arr.length === 0) {
  7. return;
  8. }
  9. var min = arr[0];
  10. for (var i = 1; i < arr.length; i++) {
  11. if (arr[i] < min) {
  12. min = arr[i];
  13. }
  14. }
  15. return min;
  16. }

判断一个数组是不是稀松数组

  1. /**
  2. * 判断一个数组是不是稀松数组
  3. * @param {*} arr
  4. */
  5. function hasEmptyInArray(arr) {
  6. // 稀松数组的特点:下标连续
  7. for (var i = 0; i < arr.length; i++) {
  8. if (!(i in arr)) {
  9. return true;
  10. }
  11. }
  12. return false;
  13. }

判断某年是不是闰年

  1. /**
  2. * 判断某年是不是闰年
  3. * @param {*} year
  4. */
  5. function isLeap(year) {
  6. // 4年一闰,百年不闰;400年一闰
  7. return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;
  8. }

得到某年某月的天数

  1. /**
  2. * 得到某年某月的天数
  3. * @param {*} year
  4. * @param {*} month
  5. */
  6. function getDays(year, month) {
  7. if (month === 2) {
  8. return isLeap(year) ? 29 : 28;
  9. } else if (month < 8 && isOdd(month) || month >= 8 && !isOdd(month)) {
  10. return 31;
  11. } else {
  12. return 30;
  13. }
  14. }

得到数组中出现频率最高的数字和频率

  1. /**
  2. * 得到数组中出现频率最高的数字和频率
  3. * 返回一个对象
  4. * @param {*} arr
  5. */
  6. function getTopFreqInArray(arr) {
  7. var records = {}; //记录出现频率
  8. for (var i = 0; i < arr.length; i++) {
  9. var n = arr[i];
  10. if (records[n]) {
  11. records[n]++;
  12. } else {
  13. records[n] = 1;
  14. }
  15. }
  16. var result; //记录最终结果的对象
  17. for (var prop in records) {
  18. if (!result || records[prop] > result.frequency) {
  19. result = {
  20. number: +prop,
  21. frequency: records[prop]
  22. };
  23. }
  24. }
  25. return result;
  26. }

验证哥德巴赫猜想

任一大于2的偶数都可写成两个质数之和,比如:8 = 3 + 5。让用户输入一个大于2的整数,输出其等于哪两个素数相加。

  1. // 验证哥德巴赫猜想
  2. function begin() {
  3. var num = +prompt("请输入一个大于2的偶数");
  4. if (isNaN(num) || num <= 2 || isOdd(num)) {
  5. console.log("输入有误");
  6. return;
  7. }
  8. //输入正确
  9. for (var i = 2; i <= num - 2; i++) {
  10. var j = num - i;
  11. //判断两个数字是否都是素数
  12. if (isPrime(i) && isPrime(j)) {
  13. console.log(`${num} = ${i} + ${j}`);
  14. }
  15. }
  16. }
  17. begin();

让用户输入一个年份,输出该年每个月的天数

  1. // 获取某年某月的天数
  2. (function begin() { // begin 写或不写,效果都一样。
  3. var year = +prompt("请输入一个年份(1990~2100)");
  4. if (isNaN(year) || year < 1990 || year > 2100) {
  5. console.log("输入有误");
  6. return;
  7. }
  8. //输入正确
  9. for (var m = 1; m <= 12; m++) {
  10. console.log(`${year}年${m}月:${getDays(year, m)}`);
  11. }
  12. }());