본문 바로가기

JAVASCRIPT

(Javascript) 코딩 테스트 전 정리, 자바스크립트 표준 내장 객체 - 배열 편

 

reduce()

배열의 각 요소에 대해 주어진 리듀서 (reducer) 함수를 실행하고, 하나의 결괏값을 반환

//구문
arr.reduce(callback[, initialValue])

//예시
const array = [1, 2, 3, 4];
const result1 = array.reduce((total, e)=> total+e, 0);
const result2 = array.reduce((total, e)=> total+e, 100);
console.log(result1); //10
console.log(result2); //110

 

 

indexOf()

배열에서 주어진 요소를 찾을  있는  번째 인덱스를 반환하고찾을  없는 경우 -1 반환

//구문
indexOf(searchElement, fromIndex)

//예시
const fruit = ["apple", "banana", "grapes", "pear", "strawberry"];
console.log(fruit.indexOf("pear")); //3
console.log(fruit.indexOf("strawberry", 2)); //4
console.log(fruit.indexOf("apple", 2)); //-1

 

 

 

join()

배열의 모든 요소를 쉼표나 지정된 구분 문자열로 구분하여 연결한 새 문자열을 만들어 반환

배열에 항목이 하나만 있는 경우, 구분 기호를 사용하지 않고 반환

//구문
join(separator)

//예문
const arr = ["a", "p", "p", "l", "e"];
console.log(arr.join()); //"a,p,p,l,e"
console.log(arr.join('')); //"apple"
console.log(arr.join('!')); //"a!p!p!l!e"

 

 

 

slice()

어떤 배열의 begin 부터 end까지(end 미포함)에 대한 얕은 복사본을 새로운 배열 객체로 반환 (원본 배열은 바뀌지 않음)

  • 음수 인덱스는 배열의 끝에서부터의 길이를 나타냄
  • end가 생략되면 배열의 끝까지(arr.length) 추출
//구문
arr.slice([begin[, end]])
//예문
const alphabets = ["a", "b", "c", "d", "e"];
console.log(alphabets.slice(2)); //Array ["c", "d", "e"]
console.log(alphabets.slice(2, 4)); //Array ["c", "d"]
console.log(alphabets.slice(-2)); //Array ["d", "e"]
console.log(alphabets.slice(2, -1)); //Array ["c", "d"]

 

 

 

sort()

배열의 요소를 적절한 위치에 정렬한 후 그 배열을 반환

기본 정렬 순서는 문자열의 유니코드 코드 포인트를 따름 > 기본 정렬은 숫자를 오름차순이나 내림차순으로 배열되지 않음

  • compareFunction(a, b)이 0보다 작은 경우 a를 b보다 낮은 색인으로 정렬
  • compareFunction(a, b)이 0보다 큰 경우, b를 a보다 낮은 인덱스로 정렬
//구문
arr.sort([compareFunction]);

//예문 - 문자열
const alphabets = ['c', 'd', 'e', 'a', 'b'];
console.log(alphabets.sort()); //Array ["a", "b", "c", "d", "e"]

//예문 - 숫자
const numArray = [1, 30, 4, 21, 100000];
console.log(numArray.sort()); //Array [1, 100000, 21, 30, 4]
console.log(numArray.sort((a, b)=>a-b)); //Array [1, 4, 21, 30, 100000] > 오름차순
console.log(numArray.sort((a, b)=>b-a)); //Array [100000, 30, 21, 4, 1] > 내림차순