1、判断对象中是否有某个属性,返回true/false
let person = {name: "小明", age: 18, year: 1998};
if ("age" in person){ //属性名必须是字符串形式,因为age不是一个变量
console.log("person对象中含有age属性")
} else{
console.log("person中没有age属性")
}
2、用in判断数组中相同字符出现的次数()
let names = ['Lily', 'Barry', 'Dendi', 'Boogie', 'Lily'];
let nameNum = names.reduce((pre, cur) => {
console.log(pre,cur);
if (cur in pre) { //pre 中是否有 cur 属性
pre[cur]++;
} else {
pre[cur] = 1; //为 pre 这个对象添加 cur 属性,并且赋值为 1
}
return pre;
},{}) //reduce(), ES6数组归并方法,这里初始值设置为一个空对象
console.log(nameNum);//{Lily: 2, Barry: 1, Dendi: 1, Boogie: 1}
3、可以简写判断体
let str = 'jiajia';//判断字符串是否等于某个值
// if(str == 'kk' || str == 'jiajia' || str == 'uu'){
if(str in {'kk':'','jiajia':'','uu':''}){
console.log('jiajia');//jiajia
}
4、for in 遍历对象
let info = {name: "小明", age: 18, year: 1998};
for (var key in info){
console.log(key + ': ' + info[key]);
// name: 小明
// age: 18
// year: 1998
}