var names = ['Alice', 'Bob', 'Tiff', 'Bruce', 'Alice'];
var countedNames = names.reduce(function (allNames, name) {
console.log('allNames::'+allNames+";;name::"+name);
if (name in allNames) {
allNames[name]++;
console.log(2000,allNames)
}
else {
console.log(4444,allNames);
allNames[name] = 1;
console.log(4441,allNames);
}
return allNames;
}, {});
4444 {}
4441 {Alice: 1}
allNames::[object Object];;name::Bob
4444 {Alice: 1}
4441 {Alice: 1, Bob: 1}
allNames::[object Object];;name::Tiff
4444 {Alice: 1, Bob: 1}
4441 {Alice: 1, Bob: 1, Tiff: 1}
allNames::[object Object];;name::Bruce
4444 {Alice: 1, Bob: 1, Tiff: 1}
4441 {Alice: 1, Bob: 1, Tiff: 1, Bruce: 1}
allNames::[object Object];;name::Alice
2000 {Alice: 2, Bob: 1, Tiff: 1, Bruce: 1}
1000 {Alice: 2, Bob: 1, Tiff: 1, Bruce: 1}
var countedNames = names.reduce(function (allNames, name) {
console.log('allNames::'+allNames+";;name::"+name);
if (name in allNames) {
allNames[name]++;
console.log(2000,allNames)
}
else {
console.log(4444,allNames);
allNames[name] = 1;
console.log(4441,allNames);
}
return allNames;
}, {});
console.log(1000,countedNames);
打印结果::
allNames::[object Object];;name::Alice4444 {}
4441 {Alice: 1}
allNames::[object Object];;name::Bob
4444 {Alice: 1}
4441 {Alice: 1, Bob: 1}
allNames::[object Object];;name::Tiff
4444 {Alice: 1, Bob: 1}
4441 {Alice: 1, Bob: 1, Tiff: 1}
allNames::[object Object];;name::Bruce
4444 {Alice: 1, Bob: 1, Tiff: 1}
4441 {Alice: 1, Bob: 1, Tiff: 1, Bruce: 1}
allNames::[object Object];;name::Alice
2000 {Alice: 2, Bob: 1, Tiff: 1, Bruce: 1}
1000 {Alice: 2, Bob: 1, Tiff: 1, Bruce: 1}