[初学者必看]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), []);  
}

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

目录
相关文章
|
12天前
|
JavaScript
JS代码动态打印404页面源码
源码由HTML+CSS+JS组成,记事本打开源码文件可以进行内容文字之类的修改,双击html文件可以本地运行效果,也可以上传到服务器里面,重定向这个界面
12 0
JS代码动态打印404页面源码
|
19天前
|
前端开发 JavaScript
js 等待接口访问成功后执行指定代码【3种方法】(含async await Promise的使用)
js 等待接口访问成功后执行指定代码【3种方法】(含async await Promise的使用)
10 1
|
19天前
|
JavaScript
js 【实用技巧】给全文代码添加一键复制按钮
js 【实用技巧】给全文代码添加一键复制按钮
15 1
|
20天前
|
前端开发 JavaScript 定位技术
JavaScript 等待异步请求数据返回值后,继续执行代码 —— async await Promise的使用方法
JavaScript 等待异步请求数据返回值后,继续执行代码 —— async await Promise的使用方法
19 1
|
16天前
|
JavaScript
js 延时执行代码的最佳实践 —— 自定义 sleep 函数
js 延时执行代码的最佳实践 —— 自定义 sleep 函数
13 0
|
16天前
|
JavaScript 前端开发
js【深度解析】代码的执行顺序
js【深度解析】代码的执行顺序
19 0
|
19天前
|
Web App开发 JavaScript 前端开发
Android端使用WebView注入一段js代码实现js调用android
Android端使用WebView注入一段js代码实现js调用android
28 0
|
19天前
|
JavaScript 前端开发
前端 JS 经典:统一 Vite 中图片转换逻辑
前端 JS 经典:统一 Vite 中图片转换逻辑
13 0
|
JavaScript 前端开发
12道 javaScript 经典逻辑题,是否承载着你的回忆
12道 javaScript 经典逻辑题,是否承载着你的回忆
|
13天前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的客户关系管理系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的客户关系管理系统附带文章源码部署视频讲解等
25 2