반복문을 순회하는 i를 str의 길이 -4로 이하로 해서 문자열 길이 안에서 비교가 이루어지도록 했다.
function ABCheck(str) {
  str = str.toLowerCase()
  for (let i = 0; i < str.length-4 ; i++) {
    if(
      (str[i] === 'a' && str[i+4] === 'b')||
      (str[i] === 'b' && str[i+4] === 'a')
    ){
      return true
    } 
  }
  return false
}레퍼런스 코드를 보니까 반복문을 순회하는 i를 4로 초기화해서 i-4번째 인덱스를 함께 비교했다.
function ABCheck(str) {
  if (str === undefined) {
    return false;
  }
  str = str.toLowerCase();
  for (let i = 4; i < str.length; i++) {
    if (
      (str[i] === 'a' && str[i - 4] === 'b') ||
      (str[i] === 'b' && str[i - 4] === 'a')
    ) {
      return true;
    }
  }
  return false;
}문제 설명
함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요.
제한 조건
x는 -10000000 이상, 10000000 이하인 정수입니다.
n은 1000 이하인 자연수입니다.
x + x, 2번째 인덱스에는 x + x + x, ...를 담아준다  function solution(x, n) {
    const answer = [];
    answer[0] = x; 
    for (let i = 1; i < n ; i++) {
        answer[i] = answer[i-1] + x;
    }
    return answer;
}x * 1, 1번째 인덱스에는 x * 2...를 추가해준다. function solution(x, n) {
    const answer = [];
    for (let i = 1; i <= n ; i++) {
        answer.push(x*i)
    }
    return answer;
}
배열 메소드를 사용한 다른 사람들의 코드를 보니 훨씬 간결해서 참고했다.
function solution(x, n) {
    return Array(n).fill(x).map((value, index) => value * (index+1))
}arr.fill(value[, start[, end]])
arr.map(callback(currentValue[, index[, array]])[, thisArg])