[JS] Array 배열 조작하기

devCecy·2020년 11월 27일
2

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의 길이를 모를경우를 대비하여 위와 같이 해결하였다.

profile
🌈그림으로 기록하는 개발자🌈

0개의 댓글