You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript如何不使用数组内置方法获取数组最大、中间、最小值

补全实现代码

实现严格遵循要求:全程不调用任何数组内置方法,手动完成遍历、比较、排序逻辑,最终计算出目标数组的最大值、中间值、最小值。
补全后的可运行代码如下:

function BigNumebr(e) {
    let num = ["19", "25" , "30" , "13", "22"]
    const arrLength = 5;
    // 初始化存储数值的数组,避免后续字符串按字典序比较产生误差
    let sortedNum = [0, 0, 0, 0, 0];
    // 基础for循环遍历,仅通过索引访问元素,不调用数组内置遍历方法
    for (let i = 0; i < arrLength; i++) {
        sortedNum[i] = num[i] - 0;
    }

    // 手动实现升序排序:相邻元素两两比较,不符合顺序就交换位置
    for (let i = 0; i < arrLength - 1; i++) {
        for (let j = 0; j < arrLength - 1 - i; j++) {
            if (sortedNum[j] > sortedNum[j + 1]) {
                let temp = sortedNum[j];
                sortedNum[j] = sortedNum[j + 1];
                sortedNum[j + 1] = temp;
            }
        }
    }

    // 从排序完成的数组中按位置取值
    const min = sortedNum[0];
    const middle = sortedNum[2]; // 长度为5的数组,正中间元素索引为2
    const max = sortedNum[4];

    return {
        max,
        middle,
        min
    }
}
实现逻辑说明
  • 首先通过基础for循环遍历原数组,将字符串格式的数字转为数值类型,避免字符串字典序比较导致的结果错误(例如字符串比较时"13"会大于"30",不符合数值比较预期)
  • 手动实现相邻元素比较交换的排序逻辑,全程不调用数组内置的sort方法,最终得到升序排列的数组
  • 排序完成后直接通过索引取值:升序数组首位为最小值,固定长度为5的数组正中间索引2对应的是中间值,末位为最大值
  • 全程仅通过索引访问、赋值操作数组元素,未使用forEach、map、push、slice等任何数组原型内置方法,符合要求

函数调用测试结果:执行BigNumebr()会返回{max: 30, middle: 22, min: 13},结果正确。

内容的提问来源于stack exchange,提问作者Abdo Adel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 15:36:22