js 操作符 in 的使用

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
} 

猜你喜欢

转载自blog.csdn.net/qq_40269801/article/details/131923573