개발 도구 (Development Tools)/JavaScript

JavaScript의 배열 메서드

BiCute 2022. 12. 29. 08:00
반응형

 

JavaScript의 배열에 관련된 메서드들입니다.

이들 메서드는 배열의 원소를 추가, 제거, 변경, 정렬, 조회 등의 작업을 수행할 수 있습니다.

 

 

 

배열에 요소를 추가

push()

배열의 끝에 요소를 추가합니다

const array = [1, 2, 3];

array.push(4);
// 결과 [1, 2, 3, 4]

 

 

unshift()

배열의 시작 부분에 요소를 추가합니다

const array = [1, 2, 3];

array.unshift(0);
// 결과 [0, 1, 2, 3, 4]

 

 

*push()와 unshift()는 배열의 길이를 반환합니다.

const array = [1, 2, 3];

// Push
const newLength = array.push(4);
// 현재의 배열 = [1, 2, 3, 4]
// newLength는 4

// Unshift
const newLength = array.unshift(0);
// 현재의 배열 = [0, 1, 2, 3, 4]
// newLength는 5

 

push()와 unshift()가 배열을 수정하게되면 원래의 내용이 변경되어 손실되기 때문에,

push()나 unshift()를 사용하기 전에 배열의 복사본을 만들어서 수정하는 것이 좋습니다

다음 코드는 배열의 복사본을 생성하는 방법입니다.

var numbers = [1, 2, 3, 4];
var fruits = ["banana", "orange", "grape"];

// 배열의 복사본을 생성
var numbersCopy = numbers.slice();
var fruitsCopy = fruits.slice();

// 배열의 복사본에 값을 추가
numbersCopy.push(5);
fruitsCopy.unshift("apple");

 

 

 

배열에 요소를 제거

pop()

배열의 마지막 요소를 제거하고 그 요소를 반환합니다

let myArray = [1, 2, 3];

let lastElement = myArray.pop();
// 현재의 배열 = [1, 2]
// lastElement는 3

 

 

shift()

배열의 첫 번째 요소를 제거하고 그 요소를 반환합니다

let myArray = [1, 2, 3];

let firstElement = myArray.shift();  
// 현재의 배열 = [2, 3]
// firstElement는 1

 

만약 제거할 요소가 없을 경우 pop()과 shift() 모두 undefined를 반환합니다.

 

 

 

배열에 순서를 변경

sort()

배열 요소를 오름차순 또는 내림차순으로 정렬하는 데 사용할 수 있습니다

let numbers = [4, 2, 5, 1, 3];
numbers.sort();
// numbers = [1, 2, 3, 4, 5]

let words = ["dog", "wolf", "by", "family", "eaten"];
words.sort();
// words = ["by", "dog", "eaten", "family", "wolf"]

 

reverse()

배열의 요소 순서를 반대로 하는 데 사용할 수 있습니다

let numbers = [1, 2, 3, 4, 5];

numbers.reverse();
// numbers = [5, 4, 3, 2, 1]

 

splice()

배열에서 요소를 제거하고 해당 위치에 새 요소를 추가하는 데 사용할 수 있습니다

let array = [1, 2, 3, 4, 5];

// (인덱스는 0부터니까) 3번째부터 2개를 제거
array.splice(2, 2);
// narray = [1, 2, 5]

const numbers = [1, 2, 3, 4, 5];

// 2를 제거하고 그 위치에 '삼'이라는 문자를 추가
numbers.splice(2, 1, "삼");
// numbers = [1, 2, "삼", 4, 5]

 

 

 

 

배열의 요소를 변경

map()

배열의 각 요소에 함수를 적용한 결과를 모은 새로운 배열을 만듭니다

let numbers = [1, 2, 3, 4, 5];

let doubledNumbers = numbers.map(function(number) {
  return number * 2;
});
// doubledNumbers = [2, 4, 6, 8, 10]

 

 

filter()

배열에서 조건에 맞는 요소만 모아 새로운 배열을 만듭니다

let words = ["spray", "limit", "elite", "exuberant", "destruction", "present"];

let longWords = words.filter(function(word) {
  return word.length > 6;  // 길이가 6 초과인 단어만
});

// longWords = ["exuberant", "destruction", "present"]

 

 

reduce()

배열의 각 요소에 순차적으로 함수를 적용(누적)하여 하나의 값을 얻습니다.

let numbers = [1, 2, 3, 4, 5];

let sum = numbers.reduce(function(accumulator, currentValue) {
  return accumulator + currentValue;
}, 0);

// sum = 15

accumulator는 누적된 값이 반환되고, currentValue는 현재의 값(배열)이 할당됩니다.

 

 

 

배열의 요소를 확인

includes()

배열에 특정 값이 있는지 확인하는 메서드

const numbers = [1, 2, 3, 4, 5];

console.log(numbers.includes(5));  // true
// 배열에 5가 있는지 확인하고 결과값을 반환

 

 

some()

배열의 요소중 하나라도 주어진 판별 함수를 통과하는지 확인하는 메서드

const numbers = [1, 2, 3, 4, 5];

console.log(numbers.some(x => x % 2 === 0)); // true
// 배열을 순회하며 짝수가 있는지를 확인

 

 

every()

배열의 모든 요소가 주어진 판별 함수를 통과하는지 확인하는 메서드

const numbers = [2, 4, 6, 7, 10];

console.log(numbers.every(x => x % 2 === 0)); // false
// numbers 배열의 모든 요소가 짝수인지 확인

 

 

 

 

배열의 요소를 검색 및 조회

indexOf()

문자열에서 특정 문자열이 처음으로 등장하는 위치를 반환합니다

let str = 'The quick brown fox jumps over the lazy dog';

let index = str.indexOf('fox');
// index = 16이 됩니다.

 

 

lastIndexOf()

문자열에서 특정 문자열이 마지막으로 등장하는 위치를 반환

let str = 'The quick brown fox jumps over the lazy dog';

let lastIndex = str.lastIndexOf('the');
// lastIndex = 31

 

 

*indexOf()와 lastIndexOf()는 배열에서도 사용할 수 있습니다.

이 경우에는 배열의 원소 중에서 특정 값이 처음으로 등장하는 인덱스나 마지막으로 등장하는 인덱스를 반환합니다.

 

 

find(), findIndex()

find() 메소드와 findIndex() 메소드는 배열에서 특정 조건을 만족하는 첫 번째 원소를 찾을 때 사용합니다.

let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

// find() 메소드를 사용하여 배열에서 3보다 큰 첫 번째 원소를 찾습니다.
let firstElement = arr.find(element => element > 3);
// firstElement = 4

// findIndex() 메소드를 사용하여 배열에서 3보다 큰 첫 번째 원소의 인덱스를 찾습니다.
let firstIndex = arr.findIndex(element => element > 3);
// firstIndex = 3

만약 조건을 만족하는 원소가 없으면, find() 메소드는 undefined를 반환하고 findIndex() 메소드는 -1을 반환합니다.

 

 

 

배열의 병합, 복사

join()

배열의 모든 요소를 연결하여 하나의 문자열로 만듭니다.

var words = ["Hello", "world"];

var sentence = words.join(" ");
// words 배열의 요소를 모두 연결하여 하나의 문자열로 만들기

console.log(sentence);
// 출력: "Hello world"

join() 메서드에 인자로 전달하는 문자열은 연결할 요소의 사이에 삽입되는 문자열을 의미합니다.

위의 예제에서는 공백 문자(" ")가 삽입되었지만, 하이픈("-")등 원하는 문자열을 삽입할 수 있습니다.

 

 

concat()

둘 이상의 배열을 단일 배열로 병합하는 데 사용됩니다.

배열의 복사본을 만들고, 그 복사본에 주어진 배열 또는 값들을 추가한 다음 새로운 배열을 반환합니다.

원본 배열은 변경되지 않습니다.

var arr1 = ['a', 'b', 'c'];
var arr2 = ['d', 'e', 'f'];

var newArray = arr1.concat(arr2);

// newArray = ['a', 'b', 'c', 'd', 'e', 'f']

 

 

slice()

배열의 일부를 추출하여 새로운 배열을 만듭니다.

이 메서드는 원본 배열을 수정하지 않고, 추출한 요소들을 포함하는 새로운 배열을 반환합니다.

var arr = ['a', 'b', 'c', 'd', 'e'];
var newArray = arr.slice(1, 3);

// newArray = ['b', 'c']

 

slice() 메서드는 두 개의 인자를 받습니다. 첫 번째 인자는 추출을 시작할 인덱스이며, 두 번째 인자는 추출을 종료할 인덱스입니다.

두 번째 인자가 생략되면 배열의 끝까지 추출됩니다.
인자를 생략해서 얕은 복사본(shallow copy)를 반환할 수 있습니다.

 

 

 

반응형