初始化时,JS对象属性名称是否为默认键(name)值?

时间:2018-02-12 23:30:22

标签: javascript eloquent

在这个问题中,我理解发生的大部分事情: 函数countBy接受任意一组可迭代项(列表,对象,数组),然后按给定的groupName对它们进行排序 - 下面的console.log'd是一个函数,根据它是否为true或false来命名它们。是的,它们大于2 ..但是,我不理解和寻求的是,当name属性最初被推送到数组中的每个对象时,它们的值是继承的吗?我看到了推送了name属性,但没有看到隐式定义的groupName。你呢?它是对象属性的某种默认行为吗?

  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}]

0 个答案:

没有答案