문제
오픈채팅방
코드
function solution(record) {
let answer = [];
const newRecord = record.map((el) => el.split(" "));
const name = {};
for (let i = 0; i < newRecord.length; i++) {
if (newRecord[i][0] !== "Leave") {
name[newRecord[i][1]] = newRecord[i][2];
}
}
/*
name : {
uid1234 : Prodo,
uid4567 : Ryon
}
*/
for (let i = 0; i < newRecord.length; i++) {
if (newRecord[i][0] === "Enter") {
answer.push(`${name[newRecord[i][1]]}님이 들어왔습니다.`);
} else if (newRecord[i][0] === "Leave") {
answer.push(`${name[newRecord[i][1]]}님이 나갔습니다.`);
}
}
console.log(answer);
return answer;
}
구현
- 결국 해당 id의 마지막 nickname을 안다면 해결
- Enter, Change action일 때 아이디가 이미 변경된 후 이므로 순회하며 업데이트
- 객체에 할당 방법
for (let i = 0; i < newRecord.length; i++) {
if (newRecord[i][0] !== "Leave") {
name[newRecord[i][1]] = newRecord[i][2];
}
}
/*
name : {
uid1234 : Prodo,
uid4567 : Ryon
}
*/