Что происходит в функции(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
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Например имеется роут groups выводящий соответственно список всех группЕсли у роута есть параметры, например, groups?grouptype=new, то он, например, выводит...
Есть скрипт, который формирует кнопку canvasВнутри кнопки пишется текст, как узнать ширину текста что бы правильно оцентровать кнопку? Проблема...
Есть input checkboxНеобходимо ставить галочку только если была нажата клавиша Shift хотя бы один раз
Не получается изменить значение инпутаКак правильно это сделать?