[JS] Array 배열 조작하기

8048 단어 PopunshiftjspushPop

1. 배열조작

1-1)index로 접근

index로 접근 할 경우 꼭 순서대로 접근할 필요는 없다. cities[3] = "대구"; 원하는 순서에 배열에 접근할 수 있다.

let cities = [];
cities[0] = "서울";
cities[1] = "대전"; 
cities[3] = "대구"; 
console.log(cities) //[ '서울', '대전', <1 empty item>, '대구' ]
~~텍스트~~
cities[3] = "대구말고인천!"  //재할당 
console.log(cities)  //[ '서울', '대전', <1 empty item>, '대구말고인천!' ]


1-2)push, unshift 함수로 접근 및 추가

push는 배열의 맨 뒷부분에 요소를 추가해주며,
unshift는 배열의 맨 앞부분에 요소를 추가해준다.

cities.push("경주")  
console.log(cities);  //[ '서울', '대전', <1 empty item>, '대구말고인천!', '경주' ]

cities.unshift("전주") 
console.log(cities);  //[ '전주', '서울', '대전', <1 empty item>, '대구말고인천!', '경주' ]

1-3) pop함수로 접근 및 삭제

pop은 배열의 가장 마지막 요소를 삭제해 준다.

cities.pop(); //맨 마지막의 "경주"가 삭제될 예정 
console.log(cities);  //[ '전주', '서울', '대전', <1 empty item>, '대구말고인천!' ]

2. Assignment

  • divideArrayInHalf 함수를 다음과 같이 구현해주세요.
  • divideArrayInHalf 함수의 인자인 array는 숫자 값으로만 구성되어 있으며 정확히 총 5개의 요소(element)로 구성되어 있습니다.
  • array의 요소들 중 10과 같거나 작은 값의 element들은 result의 맨 앞으로,- 10보다 큰 값의 요소들은 result의 맨 뒤로 재구성된 배열을 리턴해주세요.

2-1) 완성 코드

let array = [1,20,10,5,100];

function divideArrayInHalf(array){
  let length = array.length;
  let result = [];
  
  for (i=0; i < length; i++){  
    let number = array.pop();
    if (number<=10){
        result.unshift(number);
    } else {
        result.push(number);
      }
    }
   return result;
}                   

divideArrayInHalf(array);   
// 반환 값 [1,10,5,100,20]

2-2) 오류났던 부분

1) let length = array.length;let result = [];를 for문 안쪽으로 넣어버린것. {}의 범위를 잘 파악하자.

2) for문안에 array.length를 그대로 넣어주어 arraypop되면서 length가 줄어들었다. 그래서 기본 array.length만큼 반복하지 못하고 끝나버렸다.🤪
반복문 바깥으로 array.lengthlength로 선언해 값을 고정해 주는것을 오류를 해결하였다.
더불어, 위의 문제는 array의 요소가 5개라고 알려주었기 때문에 array.length 대신 5를 넣어줬어도 되지만 array의 길이를 모를경우를 대비하여 위와 같이 해결하였다.

좋은 웹페이지 즐겨찾기