reduce計算數組中元素出現的次數

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;
}, {});

console.log(1000,countedNames);


打印結果::

 allNames::[object Object];;name::Alice
 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}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章