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

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

目录
相关文章
|
1天前
|
设计模式 存储 JavaScript
【JavaScript】JavaScript对象设计哲学:八种模式塑造高效代码
【JavaScript】JavaScript对象设计哲学:八种模式塑造高效代码
10 5
|
1天前
|
前端开发 JavaScript 安全
高级前端开发需要知道的 25 个 JavaScript 单行代码
1. 不使用临时变量来交换变量的值 2. 对象解构,让数据访问更便捷 3. 浅克隆对象 4. 合并对象 5. 清理数组 6. 将 NodeList 转换为数组 7. 检查数组是否满足指定条件 8. 将文本复制到剪贴板 9. 删除数组重复项 10. 取两个数组的交集 11. 求数组元素的总和 12. 根据指定条件判断,是否给对象的属性赋值 13. 使用变量作为对象的键 14. 离线状态检查器 15. 离开页面弹出确认对话框 16. 对象数组,根据对象的某个key求对应值的总和 17. 将 url 问号后面的查询字符串转为对象 18. 将秒数转换为时间格式的字符串 19.
9 3
高级前端开发需要知道的 25 个 JavaScript 单行代码
|
1天前
|
自然语言处理 JavaScript 前端开发
【JavaScript】JavaScript基础知识强化:变量提升、作用域逻辑及TDZ的全面解析
【JavaScript】JavaScript基础知识强化:变量提升、作用域逻辑及TDZ的全面解析
8 3
|
1天前
|
JavaScript 前端开发
页面加载时执行特定的 JavaScript 代码
页面加载时执行特定的 JavaScript 代码
|
2天前
|
JavaScript 前端开发 Android开发
kotlin安卓在Jetpack Compose 框架下使用webview , 网页中的JavaScript代码如何与native交互
在Jetpack Compose中使用Kotlin创建Webview组件,设置JavaScript交互:`@Composable`函数`ComposableWebView`加载网页并启用JavaScript。通过`addJavascriptInterface`添加`WebAppInterface`类,允许JavaScript调用Android方法如播放音频。当页面加载完成时,执行`onWebViewReady`回调。
|
6天前
|
JavaScript UED
ab77b6ea7f3fbf79.JS代码报错什么原因?
网站出现JS报错,表现为黄色小叹号,经排查发现是360自动收录JS引起。这不仅导致页面延迟增加,还影响用户体验。解决方案是删除360的自动推送JS代码。
10 1
|
11天前
|
JavaScript 前端开发 安全
80 行 JS 代码实现页面添加水印:文字水印、多行文字水印、图片水印、文字&图片水印
80 行 JS 代码实现页面添加水印:文字水印、多行文字水印、图片水印、文字&图片水印 1. 信息标识: 水印可以用于标识文档的所有者、保密级别、状态或其他相关信息,帮助用户更好地理解文档内容的属性。 2. 版权保护: 在文档中添加水印可以帮助保护内容的版权,防止他人未经授权地复制、转载或篡改内容。 3. 安全保护: 对于敏感信息或机密文档,添加水印可以帮助防止信息泄露,提高文档的安全性。 4. 提升专业性: 在一些场景下,如商业报告、合同文件等,添加水印可以增加文档的专业性和正式性。 5. 防止截屏或拷贝: 在网页中添加水印可以防止用户通过截屏或复制粘贴等方式非法获取文档内容。
15 1
80 行 JS 代码实现页面添加水印:文字水印、多行文字水印、图片水印、文字&图片水印
|
JavaScript 前端开发
12道 javaScript 经典逻辑题,是否承载着你的回忆
12道 javaScript 经典逻辑题,是否承载着你的回忆
|
4天前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp小程序的校园竞赛管理系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp小程序的校园竞赛管理系统附带文章源码部署视频讲解等
151 63
|
4天前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp小程序的校园健康驿站管理系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp小程序的校园健康驿站管理系统附带文章源码部署视频讲解等
30 5