2017-01-05 2 views
-5
var names = ['Alice', 'Bob', 'Tiff', 'Bruce', 'Alice']; 

var countedNames = names.reduce(function(allNames, name) { 
    if (name in allNames) { 
    allNames[name]++; 
    } 
    else { 
    allNames[name] = 1; 
    } 
    return allNames; 
}, {}); 

В последней строке почему они передали пустой объект функции уменьшения.Передача пустого объекта в качестве аргумента в Javascript

+0

В чем проблема с которыми сталкивается? Это начальное значение, и поверх него будет построен результат –

+6

[rtfm] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce) :) – Andreas

+0

Я голосую, чтобы закрыть этот вопрос как вне темы, потому что на него можно ответить, читая документацию для уменьшения. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce – epascarello

ответ

-2

Последний аргумент .reduce - это значение «семян», которое используется в качестве начального значения в первой итерации для первого параметра, переданного обратному вызову.

В этом использовании функция .reduce заполняет тот первоначальный пустой объект с подсчетом каждого наблюдаемого уникального значения и затем возвращает тот же самый объект (теперь модифицированный) в качестве следующего значения, готового для следующей итерации.

+0

down-vote все, что вам нравится - я сделал этот ответ wiki сообщества – Alnitak

Смежные вопросы