带第二个参数的重复函数?
Repeat Function w/ Second Argument?
我是一名新程序员,正在通过 Eloquent Javascript。这是我的第一个post。我不明白下面的 'i' 是如何传递到 repeat 函数中的。我做了一个console.log,看到它贯穿0-4。 'i'如何自动设置为0?然后加1?
let labels = [];
repeat(5, i => {
labels.push(`Unit ${i + 1}`);
});
console.log(labels);
// → ["Unit 1", "Unit 2", "Unit 3", "Unit 4", "Unit 5"]
谢谢
根据结果,我假设 repeat
函数是:
function repeat (times, func) {
for (var i = 0; i < times; ++ i) {
func(i + 1); // kindly note this line, as per your doubt
}
}
所以,repeat
调用函数给定的次数,根据你的论点,这里是:
func = i => {
labels.push(`Unit ${i + 1}`);
}
因此,func
这是您传递的函数,它从 0 循环到 4,并且 number + 1
作为参数传递给 func
,因此它从 1 循环到 5。
根据你的问题,你可能不明白为什么它是从 1..5
而不是 0..4
开始循环的,这是因为行 func(i + 1);
另请注意,根据@MTK 评论:
i => {
labels.push(`Unit ${i + 1}`);
}
和
function (i) {
labels.push(`Unit ${i + 1}`);
}
是等价的,(不包括上下文绑定的概念,this
)。
希望对您有所帮助:)
您刚刚在这里考虑了整个函数的第二部分。了解到在"Eloquent JavaScript"一书中,作者将整个函数写成了下面展示的两个独立的函数。第一部分,设置 i=0,因此 i 将从零 (0) 开始。在第二部分,我的意思是在 repeat 函数中,n=5。因此,如 for 循环中所写,i 将是 i<5。意思是我将从 0 增加到 4。
希望这能澄清让您感到困惑的一切。
function repeat(n, action) {
for (let i = 0; i < n; i++) {
action(i);
}
}
let labels = [];
repeat(5, i => {
labels.push(`Unit ${i + 1}`);
});
console.log(labels);
我是一名新程序员,正在通过 Eloquent Javascript。这是我的第一个post。我不明白下面的 'i' 是如何传递到 repeat 函数中的。我做了一个console.log,看到它贯穿0-4。 'i'如何自动设置为0?然后加1?
let labels = [];
repeat(5, i => {
labels.push(`Unit ${i + 1}`);
});
console.log(labels);
// → ["Unit 1", "Unit 2", "Unit 3", "Unit 4", "Unit 5"]
谢谢
根据结果,我假设 repeat
函数是:
function repeat (times, func) {
for (var i = 0; i < times; ++ i) {
func(i + 1); // kindly note this line, as per your doubt
}
}
所以,repeat
调用函数给定的次数,根据你的论点,这里是:
func = i => {
labels.push(`Unit ${i + 1}`);
}
因此,func
这是您传递的函数,它从 0 循环到 4,并且 number + 1
作为参数传递给 func
,因此它从 1 循环到 5。
根据你的问题,你可能不明白为什么它是从 1..5
而不是 0..4
开始循环的,这是因为行 func(i + 1);
另请注意,根据@MTK 评论:
i => {
labels.push(`Unit ${i + 1}`);
}
和
function (i) {
labels.push(`Unit ${i + 1}`);
}
是等价的,(不包括上下文绑定的概念,this
)。
希望对您有所帮助:)
您刚刚在这里考虑了整个函数的第二部分。了解到在"Eloquent JavaScript"一书中,作者将整个函数写成了下面展示的两个独立的函数。第一部分,设置 i=0,因此 i 将从零 (0) 开始。在第二部分,我的意思是在 repeat 函数中,n=5。因此,如 for 循环中所写,i 将是 i<5。意思是我将从 0 增加到 4。 希望这能澄清让您感到困惑的一切。
function repeat(n, action) {
for (let i = 0; i < n; i++) {
action(i);
}
}
let labels = [];
repeat(5, i => {
labels.push(`Unit ${i + 1}`);
});
console.log(labels);