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

在这里插入图片描述

文章目录


  1. 计算两个数的和
  • 题目:编写一个函数,接受两个参数并返回它们的和。
  • 答案:
    function addNumbers(a, b) {  
        return a + b;  
    }  
    console.log(addNumbers(5, 3)); // 输出 8
    
  1. 判断一个数是否为偶数
  • 题目:编写一个函数,判断一个数是否为偶数。
  • 答案:
    function isEven(num) {  
        return num % 2 === 0;  
    }  
    console.log(isEven(4)); // 输出 true  
    console.log(isEven(5)); // 输出 false
    
  1. 找出数组中的最大值
  • 题目:编写一个函数,找出数组中的最大值。
  • 答案:
    function findMax(arr) {  
        return Math.max(...arr);  
    }  
    console.log(findMax([1, 5, 3, 8, 2])); // 输出 8
    
  1. 反转字符串
  • 题目:编写一个函数,反转一个字符串。
  • 答案:
    function reverseString(str) {  
        return str.split('').reverse().join('');  
    }  
    console.log(reverseString('hello')); // 输出 'olleh'
    
  1. 判断一个字符串是否为回文
  • 题目:编写一个函数,判断一个字符串是否为回文(正读反读都一样)。
  • 答案:
    function isPalindrome(str) {  
        return str === str.split('').reverse().join('');  
    }  
    console.log(isPalindrome('level')); // 输出 true  
    console.log(isPalindrome('hello')); // 输出 false
    
  1. 斐波那契数列
  • 题目:编写一个函数,生成斐波那契数列的前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]
    
  1. 数组去重
  • 题目:编写一个函数,去除数组中的重复项。
  • 答案:
    function uniqueArray(arr) {  
        return [...new Set(arr)];  
    }  
    console.log(uniqueArray([1, 2, 2, 3, 4, 4, 5])); // 输出 [1, 2, 3, 4, 5]
    
  1. 数组排序(冒泡排序)
  • 题目:使用冒泡排序算法对数组进行排序。
  • 答案:
    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;  
}  
  1. 检查数组中是否存在特定元素
  • 题目:编写一个函数,检查一个数组中是否存在特定的元素。
  • 答案:
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), []);  
}  

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

  • 28
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奶糖 肥晨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值