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

如何实现数组值与外部值相加?如何编写整数胜者判定函数?

技术问题一:数组元素与外部值相加的实现方法
  • 方法一:使用Array.map()(推荐,简洁高效)
    遍历数组每个元素,返回与外部值相加后的新数组:
    const nums = [1, 2, 3];
    const addValue = 5;
    const newNums = nums.map(num => num + addValue);
    // 输出结果:[6, 7, 8]
    
  • 方法二:使用for循环
    手动遍历数组,将计算结果存入新数组:
    const nums = [1, 2, 3];
    const addValue = 5;
    const newNums = [];
    for (let i = 0; i < nums.length; i++) {
      newNums.push(nums[i] + addValue);
    }
    // 输出结果:[6, 7, 8]
    
  • 方法三:使用Array.forEach()修改原数组
    直接遍历修改原数组的元素值:
    const nums = [1, 2, 3];
    const addValue = 5;
    nums.forEach((num, index) => {
      nums[index] = num + addValue;
    });
    // 原数组变为:[6, 7, 8]
    

技术问题二:修正胜者判定函数

首先说明:需求描述与给出的期望输出存在矛盾——若仅接收两个单个整数,a=5、b=3按规则应输出[1, 0]而非[1, 1]。结合原代码的循环逻辑,推测实际需求为接收两个长度为3的数组,逐位比较并统计双方获胜次数(a对应位置元素大于b则a胜1次,反之b胜1次,相等无胜负)。

原代码的问题

  1. result数组未初始化元素,直接执行result[0] +=1会得到NaN
  2. 循环条件固定为i<3,通用性差
  3. 未明确处理元素相等的情况(逻辑可优化)

修正后的代码(数组输入场景)

function winner(a, b) {
    // 初始化结果数组,避免NaN
    let result = [0, 0];
    // 遍历数组对应位置(假设a、b长度一致)
    for (let i = 0; i < a.length; i++){
        if (a[i] > b[i]){
            result[0]++;
        } else if (a[i] < b[i]){
            result[1]++;
        }
        // 元素相等时不修改结果
    }
    return result;
}

测试验证

  • 输入winner([2], [3]) → 返回[0, 1],符合期望
  • 输入winner([5, 3], [3, 5]) → 返回[1, 1],符合期望

若需求为单个整数输入

若确实是接收两个单个整数,修正后的代码如下:

function winner(a, b) {
    let result = [0, 0];
    if (a > b) {
        result[0]++;
    } else if (a < b) {
        result[1]++;
    }
    return result;
}

测试:

  • winner(2, 3) → [0, 1]
  • winner(5, 3) → [1, 0]

内容的提问来源于stack exchange,提问作者Mu'adhim

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 11:55:26