こんにちは、こちらは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));