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>, '대구말고인천!' ]
push
는 배열의 맨 뒷부분에 요소를 추가해주며,
unshift
는 배열의 맨 앞부분에 요소를 추가해준다.
cities.push("경주")
console.log(cities); //[ '서울', '대전', <1 empty item>, '대구말고인천!', '경주' ]
cities.unshift("전주")
console.log(cities); //[ '전주', '서울', '대전', <1 empty item>, '대구말고인천!', '경주' ]
pop
은 배열의 가장 마지막 요소를 삭제해 준다.
cities.pop(); //맨 마지막의 "경주"가 삭제될 예정
console.log(cities); //[ '전주', '서울', '대전', <1 empty item>, '대구말고인천!' ]
- divideArrayInHalf 함수를 다음과 같이 구현해주세요.
- divideArrayInHalf 함수의 인자인 array는 숫자 값으로만 구성되어 있으며 정확히 총 5개의 요소(element)로 구성되어 있습니다.
- array의 요소들 중 10과 같거나 작은 값의 element들은 result의 맨 앞으로,- 10보다 큰 값의 요소들은 result의 맨 뒤로 재구성된 배열을 리턴해주세요.
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]
1) let length = array.length;
와 let result = [];
를 for문 안쪽으로 넣어버린것. {}의 범위를 잘 파악하자.
2) for문
안에 array.length
를 그대로 넣어주어 array
가 pop
되면서 length
가 줄어들었다. 그래서 기본 array.length
만큼 반복하지 못하고 끝나버렸다.🤪
반복문 바깥으로 array.length
를 length
로 선언해 값을 고정해 주는것을 오류를 해결하였다.
더불어, 위의 문제는 array
의 요소가 5개라고 알려주었기 때문에 array.length
대신 5를 넣어줬어도 되지만 array
의 길이를 모를경우를 대비하여 위와 같이 해결하였다.