一文搞清 js 中 if ( in ) 用法
请看下面的例子:
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。