[Repl.it] JavaScript 15, 17, 28

Array 배열

  • 하나의 변수에 여러개의 데이터를 가질 수 있다.
  • 순서(index)를 가지고 있다. index는 0부터 시작한다.
    배열의 마지막 순서는 array.length -1 이다.
  • 배열이름[index]로 해당 배열의 요소를 가져올 수 있다.

배열 조작하기

  • index로 접근하여 수정이나 추가할 수 있다.
  • push / unshift 요소를 추가하는 함수
  • pop / shift 요소를 제거하는 함수
  • splice(제거할 위치, 개수, '추가할 요소')
  • sort 문자열의 유니코드를 따라 배열을 정렬한다.

    Sort 사용 시 compareFunction을 사용해야 한다.
    -> 유니코드 순서에 따르면 [20,30,5,7,200,9][20,200,30,5,7,9]로 정렬되기 때문!!

배열 접근하기

  • indexOf 배열에서 지정된 요소를 찾을 수 있는 첫 번째 인덱스를 반환한다.
    -> 존재하지 않으면 -1을 반환한다.
  • join 배열의 모든 요소를 연결해 하나의 문자열로 만든다.
  • slice 배열의 start부터 end까지 복사한다.
  • filter 주어진 함수를 충족하는 요소만 모아 새로운 배열을 만든다.
const words = ['spray', 'limit', 'elite', 'exuberant', 'destruction', 'present'];
const wordsSlice = words.slice(1,4);
const wordsFilter = words.filter(word => word.length > 6);

console.log(wordSlice)'; // ["limit", "elite", "exuberant"]
console.log(wordsFilter);
// ["exuberant", "destruction", "present"]

배열 순회하기

  • map()
    배열 내의 모든 요소 각각에 대해 주어진 함수를 호출한 결과를 모아 새로운 배열을 반환한다.

날짜 형식 변경하기

  • 배열의 각 항목에서 YYYY, MM, DD 부분을 잘라 새로운 문자열로 만들었다.
let dates = ['2019-03-21', '2019-04-21', '2019-05-21']
const map2 = dates.map(x => `${x.slice(0,4)}${x.slice(5,7)}${x.slice(8,10)}`)
  • forEach()
    주어진 함수를 배열 요소 각각에 대해 실행한다.
    중간에 멈추지 않기때문에, 멈추기 위해서 return을 사용해야 한다.
const items = ['item1', 'item2', 'item3'];
const copy = [];

// for문
for (let i=0; i<items.length; i++) {
  copy.push(items[i]);
}

// forEach
items.forEach(function(item){
  copy.push(item);
});

배열의 합 구하기

reduce
빈 요소를 제외하고 각 요소에 대해 주어진 reducer함수를 실행하고 하나의 결과값을 반환한다.
arr.reduce(callback[, initialValue])

  • callback(=reducer)
    배열의 각 요소에 대해 네 가지 인수를 받는다.
  • accumulator 콜백의 반환값을 누적한다.
  • currentValue 처리할 현재 요소
  • initialValue 최초 호출 시 첫 번째 인수에 제공하는 값. 배열의 첫 번째 요소.
let total = [ 0, 1, 2, 3 ].reduce(
  ( accumulator, currentValue ) => accumulator + currentValue,
  0
);

Reference

좋은 웹페이지 즐겨찾기