プログラマー|オープンチャットルームJS


難易度:Level.2
言語:Javascript
出題履歴:2019 KAO BLIND RECRUITMENT

❓ Question


オープンチャットルームの情報を印刷します.

📝 My Solution


フルプールコード 👈🏻 クリックしてGithubに移動

function solution(record) {
    var answer = [];
    const strArr = [];
    const uidArr = [];
    const idArr = [];
    const idObj = {};
        for (let i = 0; i<record.length; i++) {
            let split1 = record[i].split(',');
            let split2 = split1[0].split(' ');
            strArr.push(split2[0]);
            uidArr.push(split2[1])
            idArr.push(split2[2])
        }
        for (let i = 0; i<uidArr.length; i++) {
            if (idArr[i] !== null) {
            idObj[uidArr[i]] = idArr[i];
            }
        }
メール、アイデンティティ、および名前を含める配列に適切な値を入力します.
オブジェクトを使用してアイデンティティに基づいて名前を付けます.
        for (let i = 0; i<strArr.length; i++) {
            if (strArr[i] === 'Enter') {
                answer.push(idObj[uidArr[i]]+"님이 들어왔습니다.")
            } else if (strArr[i] === "Leave") {
                answer.push(idObj[uidArr[i]]+"님이 나갔습니다.")
            }
        }
    return answer;
}
次に、コマンドに従って名前値とメッセージを出力し、正しい配列に入れます.
しかし、答えは否定的だ.

📝 Another Solution

function solution(record) {
  let answer = [];
  let newArr = record.map((str) => str.split(" "));
  let nickNameSet = {};
    
  for (let i = 0; i < newArr.length; i++) {
    if (newArr[i].length === 3) {
      nickNameSet[newArr[i][1]] = newArr[i][2];
    }
  }

  for (let i = 0; i < newArr.length; i++) {
    if (newArr[i][0] === "Enter") {
      answer.push(nickNameSet[newArr[i][1]] + "님이 들어왔습니다.");
    } else if (newArr[i][0] === "Leave") {
      answer.push(nickNameSet[newArr[i][1]] + "님이 나갔습니다.");
    }
  }

  return answer;
};
似ているように見えますが、違う方法で行い、
正解だからいい感じ

結果



コメントブログ

  • オープンチャットルーム参考ブログ