【问题标题】:Calling function with a varying number of arguments (JS) [duplicate]使用不同数量的参数(JS)调用函数[重复]
【发布时间】:2018-05-11 17:36:42
【问题描述】:

有人知道怎么做(使用 ES5)吗?你好。

在 C++ 和 C 部分发现了类似的问题,但在 Javascript 部分没有。

var array = [1, 2, 3, 4, 5];
	
//single argument
console.log(array[0]);
	
//dynamic arguments
var item;
for (var i in array) {
	item = array[i];
	console.log("test", item);
	//same as
	//console.log("test", 0);
	//console.log("test", 1);
	//...
}

//Objective: console.log("test", 1, 2, 3, 4, 5);
/*var obj = {};
for (var key in array) {
	obj[key] = array[key];
}
console.log("test", obj[0], obj[1], obj[2], obj[3], obj[4]);
*/
console.log("test", array[0], array[1], array[2], array[3], array[4]);
//need to know the no. of items

【问题讨论】:

  • 您到底想达到什么目标?什么函数需要接受不同数量的参数?哪些参数列表以及它如何变化?
  • 如果你只使用二维数组呢?
  • 只需将数组直接传递给所需的任意数量的参数!

标签: javascript


【解决方案1】:

您需要spread 运算符。它会解构您的数组并将项目作为单独的变量传递。

var array = [1, 2, 3, 4, 5];
	
console.log("test", ...array); // ES6 and higher
console.log.apply(console, ["test"].concat(array)); // ES5

【讨论】:

  • 如果展开运算符不可用,则类似:console.log.apply(console, ["test"].concat(array))
  • 分开回答,我还是不知道这个问题对你有什么意义:)
  • 是的;可以使用ES5版本的传播:github.com/addyosmani/es6-equivalents-in-es5#spread-operator谢谢。
  • 我的道歉;我忘了。再次感谢。
猜你喜欢
  • 1970-01-01
  • 2012-08-11
  • 2010-10-15
  • 1970-01-01
  • 2016-07-15
  • 2011-01-26
  • 1970-01-01
  • 2023-02-24
  • 1970-01-01
相关资源
最近更新 更多