請看下面的例子:
let names = ['Lily', 'Barry', 'Dendi', 'Boogie', 'Lily']; let nameNum = names.reduce((pre, cur) => { if (cur in pre) { //pre 中是否有 cur 屬性 pre[cur]++; } else { pre[cur] = 1; //為 pre 這個對象添加 cur 屬性,並且賦值為 1 } return pre; }, {}) //reduce(), ES6數組歸並方法,這里初始值設置為一個空對象 console.log(nameNum); //{Barry: 1,Boogie: 1,Dendi: 1,Lily: 2 }
可以看出,if ( key in obj) 意思是 obj 中是否有 key 屬性 ,有則返回 true, 沒有則返回 false。