문제를 보고 내가 접근한 방식은
배열안에 모든 단어의 첫번째 글자를 비교하고,
같으면 빈 문자열에 그 글자를 추가하고,
그 다음 글자도 같은 방식으로 비교하고
모두 같지가 않으면 순환이 끝나며 만들어진 문자열을 리턴하는 방식을 생각했다.
우선은 myString이라는 빈문자열에 for반복문을 사용하여 모든 단어들의 같은 인덱스의 글자를 넣어준다.
let myString = "";
for (i=0; i<min; i++) {
for (j=0; j<len; j++) {
myString += strs[j][i];
}
}
위의 조건문을 돌리려니 min과 len의 변수 지정이 필요해졌다.
여기서 min이란 가장 짧은 단어의 글자수, len은 배열의 길이가 되겠다.
const len = strs.length;
let list = [];
for (s=0; s<len; s++) {
list.push(strs[s].length);
}
const min = Math.min(...list);
글자들이 모두 같은지 비교하는 방법은 repeat을 사용해준다.
let result = "";
if (myString == strs[0][i].repeat(len)) {
result += strs[0][i] ;
또한, myString을 빈문자열로 리셋시켜줘야 원하던 방식의 비교가 가능하다.
그리고 빈배열의 경우 또한 고려해줘야 한다.
위의 로직을 필요한 위치에 다시 쓰면 아래와 같다.