기본적인 객체, for문을 이용한 문제
function solution(record) {
let answer = [];
let obj = {
};
const proceed = (r) => {
let record = r.split(" ");
//console.log(record)
if(record[0] === "Enter"){
obj[record[1]+"."] = record[2];
answer.push(`${record[1]+"."}님이 들어왔습니다.`);
}
else if(record[0] === "Leave"){
//delete obj[record[1]+"."];
answer.push(`${record[1]+"."}님이 나갔습니다.`);
}
else if(record[0] === "Change"){
if(obj[record[1]+"."]){
obj[record[1]+"."] = record[2];
}
}
}
record.forEach((r)=>{
proceed(r);
});
//console.log(answer, obj)
answer = answer.map((e)=>{
let val = e.substr(0,e.indexOf(".")+1);
e = e.replace(val,obj[val]);
//console.log(e,val)
return e;
})
return answer;
}
문제를 잘못 이해함 : 채팅방에서 나가면 아이디를 가지고 있는 배열에서 삭제하는 실수를 저지름
삭제하면 다시 들어오지 않으면 undefined를 출력할 것
그래서 삭제하지 않고 변경 시에만 다시 덮어쓰는 방식으로 구현