iT邦幫忙

1

JavaScript的Reduce問題(以解決)

範例程式碼(來源MDN)

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;
}, {});
// countedNames is:
// { 'Alice': 2, 'Bob': 1, 'Tiff': 1, 'Bruce': 1 }

據我的腦袋思考出來,當程式執行第1次的時候會進入else的部分,但是{}["Alice"] = 1;
這樣的大括號+中括號{}[]宣告語法我沒有看過QAQ,F12也嘗試過,也找不到關鍵字查詢文章,懇請各位大大求解
/images/emoticon/emoticon06.gif

後續

結果洗完澡發文再思考一下就釐清了,allNames會先設定成物件(allNames = {})這樣的意思,後來allNames["Alice"] = 1的部分,假如allNames物件裡原本沒有Alice的鍵值,這部分是會自動加進物件裡。

尚未有邦友回答

立即登入回答