오픈채팅방 자바스크립트
function solution(record) {
let result = [];
record = record.map(e => e.split(' '));
let map = record.reduce((acc,e) => e[2] ? acc.set(e[1],e[2]) : acc ,new Map())
record.forEach(e => {
if(e[0] == 'Enter') result.push(`${map.get(e[1])}님이 들어왔습니다.`)
if(e[0] == 'Leave') result.push(`${map.get(e[1])}님이 나갔습니다.`)
})
return result
}
공백을 기준으로 split 메소드로 분리한다.
반복문으로 사용자 아이디(elem[1]) 닉네임(elem[2])을 맵에 저장한다. 맵의 키는 중복될 경우 최근 저장한 값으로 변경되기 때문에 userID에 대한 최신 닉네임이 value로 저장된다.
단 Leave의 경우 닉네임[elem[2]]이 없기 때문에 저장할 경우 undefined가 vlaue로 들어가기 때문에 저장하지 않고 넘어간다.
Enter의 경우와 Leave의 경우를 구분하여 map에서 꺼내 쓴다.
Author And Source
이 문제에 관하여(오픈채팅방 자바스크립트), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@gytlr01/오픈채팅방-자바스크립트저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)