자바스크립트 Array

ddoni·2020년 11월 26일
0

Array

Array란?

array는 리스트에 저장된 여러값들을 포함한 single object 이다.

Array 생성하는 법

//1. array literal
const arr = ['spring', 'summer', 'fall', 'winter'];

//2. Array()
const arr2 = new Array();

array items에 접근하는 법

//bracket notation을 이용하여 array 각각의 items에 접근 가능하다.
arr[0]; //'spring'

Array instance methods - 변경자 메서드(배열을 수정한다)

  • split() / join() string ↔ array 변환하기

    //string에서 array로 변환하기
    let longString = 'Manchester,London,Liverpool,Birmingham';
    let newArr = longString.split(',');
    console.log(newArr); // ['Manchester', 'London', 'Liverpool', 'Birmingham']
    
    //array에서 string으로 변환하기
    let newString = newArr.join(',');
    let newString = newArr.toString();

    ✨ join()에는 변환할 때 구분이 되는 기호를 parameter 값으로 전달 가능하지만 toString()은 parameter값을 받지 않는 대신 콤마만 구분기호로 사용한다.

  • push() / pop() array items 추가하고 삭제하기

    let fruits = ['apple', 'pear', 'peach', 'orange'];
    
    //array 맨 마지막에 새로운 item 추가하기
    fruits.push('watermelon');
    //array 맨 마지막에 있는 item 삭세하기
    fruits.pop();
    
    //array 맨 처음에 새로운 item 추가하기
    fruits.unshift('strawberry');
    //array 맨 처음에 있는 item 삭제하기
    fruits.shift();

    ✨ array의 맨 처음 부분에서 item을 추가/삭제하는 unshift()와 shift()는 데이터 스택 구조를 바꾸면서 작동하므로 push()와 pop()을 사용하는 것보다 느리게 작동한다.

  • splice() array의 기존 item을 삭제 또는 변경하거나 새로운 item 추가하여 배열 내용 수정

    //syntax
    array.splice(start[, deleteCount?[, item1?[, item2[, ...]]]])
    
    let days = ['mon', 'tue', 'thu'];
    days.splice(1, 0, 'wed');
  • reverse() array 요소들 배열 순서 바꾸기

    let arr = [1, 2, 3];
    arr.reverse();
    console.log(arr); //[3, 2, 1]
  • sort() array items 정렬하여 반환하기

    //syntax
    //sort() 메소드 안에 정렬 순서를 정의한 함수를 넣어 그 기준에 맞게 정렬이 가능하다
    arr.sort(?[compareFunction])
    
    const months = ['March', 'Jan', 'Feb', 'Dec'];
    months.sort();
    console.log(months);
    // expected output: Array ["Dec", "Feb", "Jan", "March"]

Array instance methods - 접근자 메서드(배열을 수정하지 않고, 기존에 기반한 새로운 배열 또는 값을 반환한다)

  • concat() 여러개의 배열 합치기

    //syntax
    array.concat([value1[, value2[, ...[, valueN]]]])
    
    const array1 = ['a', 'b', 'c'];
    const array2 = ['d', 'e', 'f'];
    const array3 = array1.concat(array2);
  • filter() 기준에 적합한 요소를 새로운 배열로 반환하기

    filter()메소드는 callback함수를 인자로 받으며 배열의 모든 요소들이 callback함수를 호출하게 되어 시험하게 된다.

    //syntax
    arr.filter(callback(element[, ?index[, ?array]])[, ?thisArg])
    
    const words = ['spray', 'limit', 'elite', 'exuberant', 'destruction', 'present'];
    const result = words.filter(word => word.length > 6);
  • includes() 특정 요소를 포함하고 있는지 boolean 값으로 판별

    const array1 = [1, 2, 3];
    
    console.log(array1.includes(2));
    // expected output: true
  • indexOf() / lastIndexOf() 지정된 요소의 인덱스 값 반환

    const beasts = ['ant', 'bison', 'camel', 'duck', 'bison'];
    
    console.log(beasts.indexOf('bison'));
    // expected output: 1
    
    //주어진 값과 일치하는 요소의 인덱스를 맨 뒤에 있는 것으로 반환하고 싶을 때
    arr.lastIndexOf('sth');

    ✨ 찾고자 하는 요소가 없는 경우 -1로 반환된다.

    동일한 값의 요소가 여러개 있는 경우 가장 첫번째 인덱스를 반환한다.

  • slice() 기존 배열에서 일부 요소들을 가져와 새로운 배열로 반환

    //syntax
    arr.slice([?begin[, ?end]])
    
    const animals = ['ant', 'bison', 'camel', 'duck', 'elephant'];
    console.log(animals.slice(2));
    // expected output: Array ["camel", "duck", "elephant"]

Array instance methods - 순회 메서드

  • every() 배열의 모든 요소가 주어진 callback 함수의 기준에 통과하는지 boolean 값으로 반환

    const isBelowThreshold = (currentValue) => currentValue < 40;
    
    const array1 = [1, 30, 39, 29, 10, 13];
    
    console.log(array1.every(isBelowThreshold));
    // expected output: true
  • find() 주어진 callback 함수를 만족하는 첫번째 요소 값 반환

    const array1 = [5, 12, 8, 130, 44];
    
    const found = array1.find(element => element > 10);
    
    console.log(found);
    // expected output: 12
  • forEach() 주어진 callback 함수를 모든 요소에 실행

    const array1 = ['a', 'b', 'c'];
    
    array1.forEach(element => console.log(element));
    
    // expected output: "a"
    // expected output: "b"
    // expected output: "c"
  • map() 모든 요소에 대해 callback 함수를 호출한 결과를 모아서 새로운 배열로 반환

    const array1 = [1, 4, 9, 16];
    
    // pass a function to map
    const map1 = array1.map(x => x * 2);
    
    console.log(map1);
    // expected output: Array [2, 8, 18, 32]

0개의 댓글