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

如何编写可复用的数组正负数字分离JavaScript函数?

通用正负数组分类函数实现

你可以通过**剩余参数(Rest Parameters)**接收任意数量的数组参数,在函数内部统一处理所有数组的元素,彻底避免重复代码。以下是具体实现方案:

实现思路

  • 用...arrays语法接住所有传入的数组,不管你传1个还是N个都能处理
  • 函数内部初始化negativeNumbers和positiveNumbers两个数组,避免全局变量污染问题
  • 嵌套遍历:先遍历每个输入数组,再遍历数组内的元素,判断正负后分别推入对应数组
  • 返回包含两个结果数组的对象,让外部调用时能清晰获取分类结果

完整代码

function separateNumbers(...arrays) {
  const negativeNumbers = [];
  const positiveNumbers = [];

  // 遍历所有传入的数组
  arrays.forEach(array => {
    // 遍历当前数组的每个元素
    array.forEach(element => {
      if (element < 0) {
        negativeNumbers.push(element);
      } else if (element >= 0) {
        positiveNumbers.push(element);
      }
    });
  });

  return { negativeNumbers, positiveNumbers };
}

// 用法示例
const arrayOne = [-2, 5, -3, 6];
const arrayTwo = [-12, 15, -13, 16];
const arrayThree = [0, -7, 9]; // 测试包含0的场景

const result = separateNumbers(arrayOne, arrayTwo, arrayThree);
console.log('正数数组:', result.positiveNumbers); // [5, 6, 15, 16, 0, 9]
console.log('负数数组:', result.negativeNumbers); // [-2, -3, -12, -13, -7]

优势说明

  • 复用性拉满:不管你后续要处理多少个数组,直接传入函数即可,不用重复写遍历逻辑
  • 逻辑封装:把分类逻辑全部收拢在函数内部,外部代码不用关心具体实现细节
  • 避免数据混乱:原来的全局数组会在多次调用时累加旧数据,现在每次调用函数都会初始化新的结果数组,数据更干净

内容的提问来源于stack exchange,提问作者Oğuztoğrul Tahirli

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 01:20:35