[初学者必看]JavaScript 15题简单小例子练习,锻炼代码逻辑思维

简介: 【6月更文挑战第3天】这是一个JavaScript编程练习集,包含15个题目及答案:计算两数之和、判断偶数、找数组最大值、字符串反转、回文检测、斐波那契数列、数组去重、冒泡排序、阶乘计算、数组元素检查、数组求和、字符计数、数组最值和质数判断以及数组扁平化。每个题目都有相应的代码实现示例。

  1. 计算两个数的和

    • 题目:编写一个函数,接受两个参数并返回它们的和。
    • 答案:
      function addNumbers(a, b) {
               
         return a + b;  
      }  
      console.log(addNumbers(5, 3)); // 输出 8
      
  2. 判断一个数是否为偶数

    • 题目:编写一个函数,判断一个数是否为偶数。
    • 答案:
      function isEven(num) {
               
         return num % 2 === 0;  
      }  
      console.log(isEven(4)); // 输出 true  
      console.log(isEven(5)); // 输出 false
      
  3. 找出数组中的最大值

    • 题目:编写一个函数,找出数组中的最大值。
    • 答案:
      function findMax(arr) {
               
         return Math.max(...arr);  
      }  
      console.log(findMax([1, 5, 3, 8, 2])); // 输出 8
      
  4. 反转字符串

    • 题目:编写一个函数,反转一个字符串。
    • 答案:
      function reverseString(str) {
               
         return str.split('').reverse().join('');  
      }  
      console.log(reverseString('hello')); // 输出 'olleh'
      
  5. 判断一个字符串是否为回文

    • 题目:编写一个函数,判断一个字符串是否为回文(正读反读都一样)。
    • 答案:
      function isPalindrome(str) {
               
         return str === str.split('').reverse().join('');  
      }  
      console.log(isPalindrome('level')); // 输出 true  
      console.log(isPalindrome('hello')); // 输出 false
      
  6. 斐波那契数列

    • 题目:编写一个函数,生成斐波那契数列的前n项。
    • 答案:
      function fibonacci(n) {
               
         if (n <= 1) return [0, 1][n];  
         let fibSeq = [0, 1];  
         for (let i = 2; i < n; i++) {
               
             fibSeq.push(fibSeq[i - 1] + fibSeq[i - 2]);  
         }  
         return fibSeq.slice(0, n);  
      }  
      console.log(fibonacci(10)); // 输出 [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
      
  7. 数组去重

    • 题目:编写一个函数,去除数组中的重复项。
    • 答案:
      function uniqueArray(arr) {
               
         return [...new Set(arr)];  
      }  
      console.log(uniqueArray([1, 2, 2, 3, 4, 4, 5])); // 输出 [1, 2, 3, 4, 5]
      
  8. 数组排序(冒泡排序)

    • 题目:使用冒泡排序算法对数组进行排序。
    • 答案:
      function bubbleSort(arr) {
               
         let len = arr.length;  
         for (let i = 0; i < len - 1; i++) {
               
             for (let j = 0; j < len - 1 - i; j++) {
               
                 if (arr[j] > arr[j + 1]) {
               
                     [arr[j], arr[j + 1]] = [arr[j + 1], arr[j]];  
                 }  
             }  
         }  
         return arr;  
      }  
      console.log(bubbleSort([5, 3, 8, 4, 2])); // 输出 [2, 3, 4, 5, 8]
      
  1. 阶乘函数

    • 题目:编写一个函数,计算一个数的阶乘。
    • 答案:
      function factorial(n) {
               
      if (n < 0) return "阶乘不适用于负数";  
      if (n === 0 || n === 1) return 1;  
      let result = 1;  
      for (let i = 2; i <= n; i++) {
               
        result *= i;  
      }  
      return result;  
      }
      
  2. 检查数组中是否存在特定元素

    • 题目:编写一个函数,检查一个数组中是否存在特定的元素。
    • 答案:
function containsElement(arr, element) {
     
    return arr.includes(element);  
}
  1. 数组求和

    • 题目:编写一个函数,计算数组中所有元素的总和。
    • 答案:
function sumArray(arr) {
     
    return arr.reduce((acc, val) => acc + val, 0);  
}
  1. 字符串中的字符计数

    • 题目:编写一个函数,计算一个字符串中某个字符出现的次数。
    • 答案:
function countCharInString(str, charToCount) {
     
    return str.split(charToCount).length - 1;  
}
  1. 数组中的最大和最小元素

    • 题目:编写一个函数,返回数组中的最大和最小元素。
    • 答案:
function findMinMax(arr) {
     
    if (arr.length === 0) return null;  
    let min = arr[0], max = arr[0];  
    for (let i = 1; i < arr.length; i++) {
     
        if (arr[i] < min) min = arr[i];  
        if (arr[i] > max) max = arr[i];  
    }  
    return {
    min, max };  
}
  1. 判断一个数是否为质数

    • 题目:编写一个函数,判断一个数是否为质数。
    • 答案:
function isPrime(num) {
     
    if (num <= 1) return false;  
    if (num <= 3) return true;  
    if (num % 2 === 0 || num % 3 === 0) return false;  
    for (let i = 5; i * i <= num; i += 6) {
     
        if (num % i === 0 || num % (i + 2) === 0) return false;  
    }  
    return true;  
}
  1. 数组扁平化(将多维数组转化为一维数组)

    • 题目:编写一个函数,将多维数组转化为一维数组。
    • 答案:
function flattenArray(arr) {
     
    return arr.reduce((acc, val) => Array.isArray(val) ? acc.concat(flattenArray(val)) : acc.concat(val), []);  
}

您好,我是肥晨。
欢迎关注我获取前端学习资源,日常分享技术变革,生存法则;行业内幕,洞察先机。

目录
相关文章
|
24天前
|
JavaScript
短小精悍的js代码
【10月更文挑战第17天】
119 58
|
11天前
|
JavaScript
原生js炫酷随机抽奖中奖效果代码
原生js随机抽奖是一个炫酷的根据数据随机抽奖的代码,该网页可进行随机抽取一个数据,页面动画高科技、炫酷感觉的随机抽奖效果,简单好用,欢迎下载!
25 3
原生js炫酷随机抽奖中奖效果代码
|
11天前
|
JSON JavaScript 前端开发
[JS]面试官:你的简历上写着熟悉jsonp,那你说说它的底层逻辑是怎样的?
本文介绍了JSONP的工作原理及其在解决跨域请求中的应用。首先解释了同源策略的概念,然后通过多个示例详细阐述了JSONP如何通过动态解释服务端返回的JavaScript脚本来实现跨域数据交互。文章还探讨了使用jQuery的`$.ajax`方法封装JSONP请求的方式,并提供了具体的代码示例。最后,通过一个更复杂的示例展示了如何处理JSON格式的响应数据。
24 2
[JS]面试官:你的简历上写着熟悉jsonp,那你说说它的底层逻辑是怎样的?
|
16天前
|
JavaScript 前端开发 开发者
如何在 Visual Studio Code (VSCode) 中使用 ESLint 和 Prettier 检查代码规范并自动格式化 Vue.js 代码,包括安装插件、配置 ESLint 和 Prettier 以及 VSCode 设置的具体步骤
随着前端开发技术的快速发展,代码规范和格式化工具变得尤为重要。本文介绍了如何在 Visual Studio Code (VSCode) 中使用 ESLint 和 Prettier 检查代码规范并自动格式化 Vue.js 代码,包括安装插件、配置 ESLint 和 Prettier 以及 VSCode 设置的具体步骤。通过这些工具,可以显著提升编码效率和代码质量。
169 4
|
18天前
|
JSON 移动开发 数据格式
html5+css3+js移动端带歌词音乐播放器代码
音乐播放器特效是一款html5+css3+js制作的手机移动端音乐播放器代码,带歌词显示。包括支持单曲循环,歌词显示,歌曲搜索,音量控制,列表循环等功能。利用json获取音乐歌单和歌词,基于html5 audio属性手机音乐播放器代码。
67 6
|
14天前
|
JavaScript 前端开发 开发者
如何在 Visual Studio Code (VSCode) 中使用 ESLint 和 Prettier 检查代码规范并自动格式化 Vue.js 代码
随着前端开发技术的快速发展,代码规范和格式化工具变得尤为重要。本文介绍如何在 Visual Studio Code (VSCode) 中使用 ESLint 和 Prettier 检查代码规范并自动格式化 Vue.js 代码。通过安装和配置这些工具,可以确保代码风格一致,提高代码质量和可读性。
42 1
|
29天前
|
自然语言处理 JavaScript 前端开发
深入理解JavaScript中的闭包:原理、应用与代码演示
【10月更文挑战第12天】深入理解JavaScript中的闭包:原理、应用与代码演示
|
4月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的客户关系管理系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的客户关系管理系统附带文章源码部署视频讲解等
95 2
|
4月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的小区物流配送系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的小区物流配送系统附带文章源码部署视频讲解等
120 4