具体来说,我很好奇在 for...of 语句的“已知”变量定义中为“c”创建的绑定。
function countBy(items, groupName) {
let counts = [];
for (let item of items) {
let name = groupName(item);
let known = counts.findIndex(c => c.name == name);
if (known == -1) {
counts.push({name, count: 1});
} else {
counts[known].count++;
}
}
return counts;
}
console.log(countBy([1, 2, 3, 4, 5], n => n > 2));
// → [{name: false, count: 2}, {name: true, count: 3}]
我知道这里的“c”代表“counts”对象数组的一个元素。但是,我不明白为什么“c”可以正确解释为代表“计数”的一个元素。
考虑到它没有可以表示的其他对象元素,它对每个计数元素的分配是否隐含?还是箭头功能
c => c.name == name
隐含地 (i) 定义和 (ii) 然后利用 c 作为对象元素的绑定?
这段代码来自 Eloquent JavaScript 的第 5 章。我尝试搜索有关它的上一个线程(任何人都可以从 eloquent javascript 向我解释以下功能)但无法得出结论。
在此先感谢您的帮助。