JavaScript - 배열 조작하기

HYUK·2022년 12월 27일
0

1. 요소 추가

아래 cities 라는 변수를 선언하고 빈 배열을 할당했습니다. 배열에는 아래와 같이 배열의 인덱스에 접근하여 요소를 하나씩 추가할 수 있습니다.

const cities = [];

cities[0] = "서울"; // ["서울"]
cities[1] = "대전"; // ["서울", "대전"]
cities[2] = "대구"; // ["서울", "대전", "대구"]

차례대로 요소를 추가해야 할 것 같지만, 아래처럼 원하는 위치에 마음대로 요소를 할당할 수 있습니다.

cities[5] = "제주도";

그렇다면 3,4 index는 어떻게 될까? 아무것도 할당하지 않았기에 undefined 라고 출력됩니다. 이로써 총 6개의 요소가 있는 배열이 되었습니다. ["서울", "대전", "대구", undefined, undefined, "제주도"]

요소를 수정하고 싶을 때는 위와 동일하게 배열의 인덱스에 접근하여 값을 할당하면 됩니다.

cities[5] = "포항";

console.log(cities[5]); // 제주도에서 포항으로 수정

2. push / unshift 메서드

다른 방법으로도 요소를 추가할 수 있습니다.

const cities = [];

cities.push("경주", "전주");
cities.unshift("인천");

console.log(cities); //["인천", "경주", "전주"]

배열의 push() , unshift() 메서드는 배열에 요소를 추가하는 동작을 수행 하는데

  • push는 배열의 마지막 부분, 즉 꼬리에 요소들을 추가하고,
  • unshift는 배열의 맨 앞부분, 즉 머리 부분에 요소를 추가합니다.

배열 조작 방법에는 2가지가 있습니다.
1. index로 접근하여 수정이나 추가
2. push, unshift 메서드로 추가

3. pop 메서드

배열에 요소를 추가하는 것 말고도, 요소를 제거할 수도 있습니다.

let cities = ["서울", "대전", "대구", "제주도", "포항"];

let lastCity = cities.pop();

console.log(lastCity) // 포항
console.log(cities) // ["서울", "대전", "대구", "제주도"]

Assignment

divideArrayInHalf 함수를 다음과 같이 구현해주세요.

  • divideArrayInHalf 함수는 array를 인자로 받습니다. 이 array의 요소는 숫자로만 구성되어 있으며 총 5개의 요소들로 구성되어 있습니다.

  • array 요소들 중 10과 같거나 작은 요소들은 result의 맨 앞으로, 10보다 큰 요소들은 result의 맨 뒤로 재구성해 result 배열을 반환해주세요.

  • 재구성이 되는 순서는 array의 맨 뒤 요소부터 맨 앞 요소까지입니다. 즉, 배열의 뒷 요소부터 재구성을 진행해주세요.

예를 들어, 인자로 들어오는 array가 다음과 같을 때,

[1, 20, 10, 5, 100]
function divideArrayInHalf(array){
	let result = []
	for(let i = array.length; i>=0; i--){
    	if(array[i]<=10){
        	result.unshift(array[i])
        }else if(array[i]>10){
        	result.push(array[i])
        }
    }return result
}

console.log(divideArrayInHalf([1, 20, 10, 5, 100]))
// [1, 10, 5, 100, 20]
  • let result = [ ] 배열을 재구성할 변수의 빈배열을 할당
  • for문의 조건은 재구성 순서가 array의 맨 뒤부터 가장 앞요소까지 이기 때문에 let i = array.length;(배열의 길이이기때문에 가장뒤), i>=0;(0까지이기 때문에 배열의 가장앞), i--(뒷요소부터 재구성이기때문에 하나씩 역순(-)으로 반복)
  • result.unshift(array[ i ]) result변수의 앞부분부터(unshift)들어가는데 index순서의 역(i--)으로 들어감
  • result.push(array[ i ]) result변수의 뒷부분터(push)들어가는데 index순서의 역(i--)으로 들어감
profile
step by step

0개의 댓글