Javascript 确切的参数是什么?
书中的例子(不是整本,如果需要,我会提供更多) 函数中的Javascript 确切的参数是什么?,javascript,Javascript,书中的例子(不是整本,如果需要,我会提供更多) 函数中的sep参数是什么 当我看不到它在任何地方声明时,如何获取它的值?sep是map在数组上迭代时提供的单个数组元素 了解更多信息: …当我在任何地方都看不到它的时候 它在回调的参数列表中声明 function CSVReader(separators){ this.separators = separators || [","]; this.regexp = new RegExp(this.separators.map(function
sep
参数是什么
当我看不到它在任何地方声明时,如何获取它的值?
sep
是map
在数组上迭代时提供的单个数组元素
了解更多信息:
…当我在任何地方都看不到它的时候
它在回调的参数列表中声明
function CSVReader(separators){
this.separators = separators || [","];
this.regexp =
new RegExp(this.separators.map(function(sep){
// -----------------------------------------^^^^ ---------------------- here
return "\\"+sep[0];
}).join("|"));
}
函数将为this.separators
数组中的每个条目调用该回调函数。在每次调用中,sep
参数接收该条目的值
省略很多细节,map
基本上如下所示:
function map(callback) {
// Here, `this` is the array `map` was called on
var result = [];
for (var i = 0, len = this.length; i < len; ++i) {
result.push(callback(this[i], i, this));
}
}
函数映射(回调){
//这里,`this`是调用的数组`map`
var结果=[];
对于(变量i=0,len=this.length;i
(为了清晰起见,我遗漏了一个主要细节,即forEach
的thisArg
和使用特定的this
值调用callback
。)
回调函数接收三个参数,但示例中的参数仅使用(sep
)中的一个
另请参见关于forEach的
FWIW:是JavaScript信息(以及HTML和CSS)的良好资源。显然,分隔符
应该是一个分隔字符数组(可能用于每个CSV行的元素),因此,.map()
调用会迭代其中的每一个,这就是sep
的来源。sep
是中的每个元素。分隔符
并使用Ok,thanx,再问一个问题进行迭代。如果.map()一个接一个地从数组中获取元素,并在这些元素上执行函数,那么为什么要使用sep[0]?这就好像一个数组是从一个数组传递给sep的?@Yozex-数组中的条目是字符串。显然,代码的作者只想允许使用一个字符分隔符,但不想通过验证来强制使用sep[0]
当sep
为时,“
为”、“
”,但sep[0]
当sep
为“xx”
仅为“x”
。更好的实现是检查this.separator
中长度大于1的任何条目并抛出错误,而不是忽略分隔符中的后续字符。
function map(callback) {
// Here, `this` is the array `map` was called on
var result = [];
for (var i = 0, len = this.length; i < len; ++i) {
result.push(callback(this[i], i, this));
}
}