if文でもin演算子が使用できます。
プロパティがオブジェクトにある場合にtrueを返します。
if ('property' in obj) {
// 処理
}
例(修正前)
const card = { type: 'mtg', color: 'white' };
console.log('type' in card); // 出力:true
delete card.color;
if ('color' in card === false) {
card.color = 'black';
}
console.log(card.color); // 出力:black
コメントでご指摘をいただき修正した例
ifの条件でfalseと比較せずに、否定演算子を使う
const card = { type: 'mtg', color: 'white' };
console.log('type' in card); // 出力:true
delete card.color;
if (!('color' in card)) {
card.color = 'black';
}
console.log(card.color); // 出力:black