Что происходит в функции(person), можете написать по порядку?
Как происходит поиск имени? то что forEach проходит по каждому элементу понятно, но непонятно что происходит в этих строчках:
byName[person.name] = person;
...
console.log(byName["Philibert Haverbeke"]);
var ANCESTRY_FILE = JSON.stringify([
{ "name": "Carolus Haverbeke", "born": 1832 },
{ "name": "Emma de Milliano", "born": 1876 },
{ "name": "Philibert Haverbeke", "born": 1907 },
]);
var ancestry = JSON.parse(ANCESTRY_FILE);
console.log(ancestry.length);
var byName = {};
ancestry.forEach(function(person) {
byName[person.name] = person;
});
console.log(byName["Philibert Haverbeke"]); // → {name: "Philibert Haverbeke", …}
Это называется Скобочная нотация
Любое значение объекта можно получить через объект["название_ключа"], или присвоить ему объект["название_ключа"] = "Новое значение"; Вместо строки - внутри квадратных скобок может быть переменная или любое другое выражение.
Но когда ключ - обычная строка без пробелов или специальных символов, используют "точку", просто потому что так короче.
let test = {
"one_one": "1111",
"two two": "2222",
"#@$@#%$": "3333",
};
console.log( test.one_one ); // "1111"
console.log( test["one_one"] ); // "1111"
console.log( test["two two"] ); // "2222"
let key = "#@$@#%$";
console.log( test[key] ); // "3333"
test[key] = "Новое значение";
console.log( test[key] ); // "Новое значение"
document["body"]["style"]["background-color"] = "#922";
// Работает даже так
А в вашем примере, во время перебора, на каждой итерации, person получает значение очередного объекта вида { "name": "Carolus Haverbeke", "born": 1832 }
byName[person.name] = person; — в заранее созданный пустой объект byName = {} добавляются все объекты person, а ключами служат их значения person.name
Простыми словами, создаётся map коллекция с ключом и значением, где в качестве ключа выступает *.name и дальше мы можем просто получить значение из коллекции, обратившись к ней по ключу.
Советую прочесть - MDN Map
Продвижение своими сайтами как стратегия роста и независимости