JavaScript (5) 배열, 연습문제 헷갈리는 것 정리(DAY 19)

코딩기록·2024년 11월 2일

배열

  • 배열의 data type : object(객체);

  • 배열의 마지막 값 출력 : 배열명[배열명.length-1]

  • 배열의 값을 하나씩 출력 :

    let fruitList = ['사과', '딸기', '포도', 배];
    
    for (let fruitItem of fruitList) {
      console.log(fruitItem);
    }
  • push, pop, shift, unshift
    --push(값1, 값2) : 배열 마지막 값 추가
    --pop() : 배열 마지막 값 삭제.
              ! 여러 개 삭제하려면 splice 사용

let numberList = [1, 2, 3, 4, 5, 6, 7];

// 지울 갯수 설정
let elementsToDelete = 3;

// 삭제 시작 인덱스 계산
let startIndex = numberList.length - elementsToDelete;

// 요소 삭제
numberList.splice(startIndex ,elementsToDelete);

console.log(numberList);


--shift() : 배열 첫번째 값 삭제. 여러 개 삭제하려면 splice 사용.
--unshift(값1, 값2) : 배열 첫번째 값 추가.

  • index.Of : 특정 값을 정확하게 가진 첫번째 인덱스 찾기
          ! 특정 값을 포함한 모든 인덱스를 찾으려면, 아래와 같이 for문 사용
  • slice vs splice
특성slicesplice
용도배열의 일부를 추출하여 새로운 배열을 반환배열에서 요소를 추가하거나 제거
원본 배열원본 배열은 변경되지 않음원본 배열이 변경됨
인수slice(startIndex, endIndex?
start 포함, end 미포함
)
`splice(start, deleteCount, item1, ...)

let food = ['볶음밥', '짜장', '짬뽕', '탕수육', '볶음밥', '볶음밥'];
let indexList = []; // 인덱스 번호를 담을 배열 생성
let keyword = '볶음밥'; // 찾고자 하는 값

for (let i = 0; i < food.length; i++) {
  if (food[i] === keyword) {
    indexList.push(i); // i번째 index에 찾는 키워드가 있으면, index 번호를 저장 
  }
}
console.log(indexList);

      ! 특정 값을 포함한 모든 인덱스를 찾으려면, includes 사용

실습 시 헷갈렸던 것들

  1. 숫자를 입력 받는데, '그만'이라고 입력 시 게임 중단
    -> prompt를 받을 때 +prompt로 형 변환 하면, if(prompt값 ==== '그만')이라고 값을 줄 때 '그만'을 NaN으로 인식

  2. 배열에서 끝에서 n번째 ~ 끝, 첫번째 ~ n 번째 삭제 :
    for문으로 한 개씩 삭제는 비효율 적이므로, splice를 사용
    이 때, 끝에서 n개 삭제할 때의 방법은 위 글의 splice 설명 참고

  3. 배열문에서 특정값을 가진 index 번호를 "모두" 출력 :
    indexOf는 첫번째 index 번호만 출력. 모두 출력하려면 for문 사용

  4. slice(2, 5)시, 2는 포함, 5는 미포함임. 케이크 자르는 모습 연상하여 암기

0개의 댓글