1

具体来说,我很好奇在 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 向我解释以下功能)但无法得出结论。

在此先感谢您的帮助。

4

0 回答 0