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. オブジェクトをトラバースするための
let info = {name: "小明", age: 18, year: 1998};
for (var key in info){
console.log(key + ': ' + info[key]);
// name: 小明
// age: 18
// year: 1998
}