从这里学习 Javascript 函数 - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Functions
我无法理解这个概念 - 逗号是如何分配给分隔符的?
function myConcat(separator) {
console.log(separator); // , -> how was this interpreted as comma?
console.log(arguments.length); // 4
var result = ''; // initialize list
var i;
// iterate through arguments
for (i = 1; i < arguments.length; i++) {
result += arguments[i] + separator;
}
return result;
}
myConcat(', ', 'red', 'orange', 'blue');
输出:
,
4
red, orange, blue,
最佳答案
让我们想象 arguments
不存在。然后可以这样写函数:
function myConcat(separator, ...array) {
var result = ""; // initialize the resulting string
// iterate over the array
for (let i = 0; i < array.length; i++) {
result += array[i] + separator;
}
return result;
}
现在很清楚 myConcat 函数有一个名为 seperator
的参数,后跟一个所谓的 rest parameter
数组。这意味着无论何时您调用该函数,第一个参数都会传递给分隔符,随后所有参数都会收集到 array
数组中。
myConcat(/*seperator*/ "a",/*...array*/ "b", "n", "n", "!");
由于您来自 java 背景,因此用 java 编写的相同内容将是:
class Helpers {
static String myConcat(String seperator, String[] ...array){
String result = "";
for(int i = 0; i < array.length; i++)
result += array[i] + seperator;
return result;
}
}
关于javascript - 这个函数传递如何被视为分隔符和参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48597301/