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

如何将JavaScript函数的多数值参数转为整数数组?

解决JavaScript函数接收多参数转整数数组的问题

嘿,我来帮你搞定这个问题!你遇到的核心问题是如何捕获函数接收的所有参数,而不是仅第一个,然后把它们转换成整数数组对吧?我给你两种简单靠谱的方案,都是日常开发里常用的:

方案一:用ES6剩余参数(最推荐)

ES6的剩余参数语法(...)可以直接把所有传入的参数打包成一个真数组,这是最简洁直观的写法,不用处理类数组的麻烦:

function cc(...cards) {
  // 把每个参数转换成整数,这里用parseInt确保进制正确,或者用Number()也可以
  const integerCards = cards.map(card => parseInt(card, 10));
  
  // 测试一下,你可以替换成自己的业务逻辑
  console.log(integerCards);
  return integerCards;
}

// 调用测试
cc(2, 3, 4, 5, 6); // 输出 [2, 3, 4, 5, 6]

为什么你之前用[card]只能拿到第一个参数?因为如果函数定义成function cc(card),card变量只会绑定第一个传入的参数,剩余的参数根本没被捕获。而...cards会把所有传入的参数都放进cards数组里,完美解决这个问题。

方案二:用arguments对象(兼容ES5及更早环境)

如果你的代码需要兼容旧环境,没法用ES6语法,可以用函数内置的arguments对象——它是一个类数组对象,包含了所有传入的参数。不过需要先把它转换成真数组,再做转换:

function cc() {
  // 把类数组的arguments转换成真数组
  const cardsArray = Array.from(arguments);
  // 或者用展开语法:const cardsArray = [...arguments];
  
  // 转换为整数数组
  const integerCards = cardsArray.map(card => parseInt(card, 10));
  
  console.log(integerCards);
  return integerCards;
}

// 调用测试
cc(2, 3, 4, 5, 6); // 输出 [2, 3, 4, 5, 6]

小提醒:关于整数转换的细节

  • 用parseInt(card, 10)的时候,一定要加上第二个参数10(十进制),避免遇到类似'08'这种字符串时被当成八进制解析的问题。
  • 如果你的参数本身就是数值类型,用Number(card)会更简洁,不过它对非数值的处理更严格(比如Number('12a')会返回NaN,而parseInt('12a',10)会返回12),你可以根据自己的需求选择。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:21:01