こんにちは、こちらはBingです。ご質問にお答えします。😊

ご希望のJavaScriptコードを生成しました。以下のコードをご覧ください。

// テーブルをjson形式で定義する
var table = [
  {status: "オフライン", room: "101号室", service: "ネット"},
  {status: "オフライン", room: "101号室", service: "電話"},
  {status: "オフライン", room: "102号室", service: "ネット"},
  {status: "オフライン", room: "103号室", service: "電話"},
  {status: "オフライン", room: "103号室", service: "テレビ"}
];

// 世帯数の断の数をカウントする関数を定義する
function countOfflineHouseholds(table) {
  // 世帯ごとにオンラインかオフラインかを判定する
  var households = {};
  for (var i = 0; i < table.length; i++) {
    var row = table[i];
    var room = row.room;
    var status = row.status;
    // オンラインの場合はtrue、オフラインの場合はfalseとする
    if (status == "オンライン") {
      households[room] = true;
    } else if (status == "オフライン" && !households[room]) {
      households[room] = false;
    }
  }
  // オフラインの世帯数をカウントする
  var offlineCount = 0;
  for (var room in households) {
    if (!households[room]) {
      offlineCount++;
    }
  }
  return offlineCount;
}

// マンションの状態を判定する関数を定義する
function judgeMansionStatus(table) {
  // 世帯数の断の数を取得する
  var offlineCount = countOfflineHouseholds(table);
  // 状態を判定する
  var status = "";
  if (offlineCount == Object.keys(households).length) {
    status = "マンション全断";
  } else if (offlineCount > 0) {
    status = "一部断";
  } else {
    status = "復旧";
  }
  return status;
}

// マンションの状態を表示する
console.log(judgeMansionStatus(table));