Здравствуйте, помогите разобраться!
Искал в интернете, не смог найти, сори за нубский вопрос если что.
Интересует строка "prevValues[currItem] = 1"
Как через неё добавляется элемент в массив и еще заодно создаётся новый объект типа "Bob': 1" ?
Здесь какие-то скрытые механизмы или что? Было бы лучше понятно если хотя-бы использовался push() или вместо массива [] для initialValue передавал бы объект {}.
var names = ['Alice', 'Bob', 'Tiff', 'Bruce', 'Alice'];
var countedNames = names.reduce(function (prevValues, currItem) {
if (currItem in prevValues){
prevValues[currItem]++;
}else{
prevValues[currItem] = 1; //1) Как это работает?
}
return prevValues;
}, []);
console.log(countedNames) // [Alice: 2, Bob: 1, Tiff: 1, Bruce: 1]