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

如何在JavaScript函数中定义数组参数?附C# params用法示例

在JavaScript函数中定义类似C# params的数组参数

嘿,我来帮你搞定这个问题!在JavaScript里,有几种方式可以实现类似C#中params关键字的数组参数效果,最常用的是剩余参数(Rest Parameters),和C#的用法非常接近,下面给你详细讲讲:

1. 最接近C# params的方式:剩余参数(...语法)

剩余参数会自动把你传入的所有单个参数打包成一个数组,调用的时候不用手动包裹成数组,和C#的params体验一致:

function myFunc(...values) {
  // values就是一个标准的JavaScript数组,你可以用任何数组方法操作它
  values.forEach(item => {
    console.log(`参数值:${item}`);
  });
}

// 直接传多个参数,不用写数组
myFunc(1, "hello world", true, { name: "Adil" });

// 如果已经有一个数组,也可以用展开运算符(...)传进去
const myArray = [2, "test", null];
myFunc(...myArray);

2. 直接定义数组参数

如果你希望调用者必须传入一个数组,也可以直接把参数定义成数组类型:

function myFunc(values) {
  // 这里最好加个判断,确保传入的是数组
  if (!Array.isArray(values)) {
    console.error("请传入数组类型的参数");
    return;
  }
  
  values.forEach(item => {
    console.log(item);
  });
}

// 调用时必须传入数组
myFunc([1, "hi", false]);

3. 老版本JS的替代方案:arguments对象

在ES6之前,没有剩余参数的时候,大家会用arguments对象来获取所有传入的参数。不过它是一个类数组对象,需要转换成真正的数组才能使用数组方法,现在已经不推荐使用了,不过可以了解一下:

function myFunc() {
  // 把arguments转成数组
  const values = Array.from(arguments);
  values.forEach(item => {
    console.log(item);
  });
}

myFunc(1, 2, 3); // 输出1、2、3

总结一下,**剩余参数(...values)**是最推荐的方式,和C#的params用法最匹配,语法简洁且灵活。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:48:51