小编Sar*_*ara的帖子

很棒-很棒-很棒-很棒-... 示例 - Eloquent JS

我正在努力解决 Eloquent JS 中高阶函数章节中的“Great-great-great-great-...”示例。我不明白其中一个函数如何从仅包含祖先数据的对象创建值。以下是功能:

function reduceAncestors(person, f, defaultValue) {
   function valueFor(person) {
      if (person == null)
         return defaultValue;
      else
         return f(person, valueFor(byName[person.mother]),
                   valueFor(byName[person.father]));
    }
  return valueFor(person);
}
Run Code Online (Sandbox Code Playgroud)

function sharedDNA(person, fromMother, fromFather) {
  if (person.name == "Pauwels van Haverbeke")
    return 1;
  else
    return (fromMother + fromFather) / 2;
}
Run Code Online (Sandbox Code Playgroud)

我不明白 valueFor(byName[person.mother]) 如何从这样的对象生成数值:

"Carolus Haverbeke" : {
    "name": "Carolus Haverbeke", 
    "sex": "m", 
    "born": 1832, 
    "died": 1905, 
    "father": "Carel Haverbeke", 
    "mother": "Maria van Brussel"}
Run Code Online (Sandbox Code Playgroud)

javascript

2
推荐指数
1
解决办法
701
查看次数

标签 统计

javascript ×1