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

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

目录
相关文章
|
5月前
|
JavaScript 前端开发 安全
【逆向】Python 调用 JS 代码实战:使用 pyexecjs 与 Node.js 无缝衔接
本文介绍了如何使用 Python 的轻量级库 `pyexecjs` 调用 JavaScript 代码,并结合 Node.js 实现完整的执行流程。内容涵盖环境搭建、基本使用、常见问题解决方案及爬虫逆向分析中的实战技巧,帮助开发者在 Python 中高效处理 JS 逻辑。
|
7月前
|
JavaScript 前端开发 算法
流量分发代码实战|学会用JS控制用户访问路径
流量分发工具(Traffic Distributor),又称跳转器或负载均衡器,可通过JavaScript按预设规则将用户随机引导至不同网站,适用于SEO优化、广告投放、A/B测试等场景。本文分享一段不到百行的JS代码,实现智能、隐蔽的流量控制,并附完整示例与算法解析。
205 1
|
8月前
|
JavaScript 前端开发
怀孕b超单子在线制作,p图一键生成怀孕,JS代码装逼娱乐
模拟B超单的视觉效果,包含随机生成的胎儿图像、医疗文本信息和医院标志。请注意这仅用于前端开发学习
|
10月前
|
存储 JavaScript 前端开发
在NodeJS中使用npm包进行JS代码的混淆加密
总的来说,使用“javascript-obfuscator”包可以帮助我们在Node.js中轻松地混淆JavaScript代码。通过合理的配置,我们可以使混淆后的代码更难以理解,从而提高代码的保密性。
1017 9
|
8月前
|
JavaScript
JS代码的一些常用优化写法
JS代码的一些常用优化写法
149 0
|
11月前
|
前端开发 JavaScript
【Javascript系列】Terser除了压缩代码之外,还有优化代码的功能
Terser 是一款广泛应用于前端开发的 JavaScript 解析器和压缩工具,常被视为 Uglify-es 的替代品。它不仅能高效压缩代码体积,还能优化代码逻辑,提升可靠性。例如,在调试中发现,Terser 压缩后的代码对删除功能确认框逻辑进行了优化。常用参数包括 `compress`(启用压缩)、`mangle`(变量名混淆)和 `output`(输出配置)。更多高级用法可参考官方文档。
794 11
|
11月前
|
JavaScript 前端开发 API
JavaScript中通过array.map()实现数据转换、创建派生数组、异步数据流处理、复杂API请求、DOM操作、搜索和过滤等,array.map()的使用详解(附实际应用代码)
array.map()可以用来数据转换、创建派生数组、应用函数、链式调用、异步数据流处理、复杂API请求梳理、提供DOM操作、用来搜索和过滤等,比for好用太多了,主要是写法简单,并且非常直观,并且能提升代码的可读性,也就提升了Long Term代码的可维护性。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
JavaScript 前端开发
12道 javaScript 经典逻辑题,是否承载着你的回忆
12道 javaScript 经典逻辑题,是否承载着你的回忆
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的客户关系管理系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的客户关系管理系统附带文章源码部署视频讲解等
347 2
|
JavaScript 前端开发
JavaScript中的原型 保姆级文章一文搞懂
本文详细解析了JavaScript中的原型概念,从构造函数、原型对象、`__proto__`属性、`constructor`属性到原型链,层层递进地解释了JavaScript如何通过原型实现继承机制。适合初学者深入理解JS面向对象编程的核心原理。
276 1
JavaScript中的原型 保姆级文章一文搞懂