🗃️javascript/코테 프레임 문제

1-17 중복단어제거(△)

하얀성 2024. 4. 11. 14:26

<제출답안>

 

Array 인스턴스의 indexOf() 메서드는 배열에서 주어진 요소를 찾을 수 있는 첫 번째 인덱스를 반환하고, 찾을 수 없는 경우 -1을 반환합니다. (배열의 요소든, 문자열의 요소든 동일 효과. 왜냐하면 조회만하는 메소드니까)

function solution(s) {
  let answer = "";
  s.map((x) => {
    if (answer.indexOf(x) === -1) answer += x + " ";
  });
  return answer;
}
let str = ["good", "time", "good", "time", "student"];
console.log(solution(str));

 

 

 


수정

- 문자열을 구분을 위해 push를 통한 배열의 형태가 낫다.

- answer를 출력하기 때문에 map말고 forEach 사용.

- 띄어쓰기할 때 join("\n") 사용

function solution(s) {
  let answer = [];
  s.forEach(x => {
    if (answer.indexOf(x) === -1) answer.push(x);
  });
  return answer.join('\n');
}

let str = ["good", "time", "good", "time", "student"];
console.log(solution(str));