array는 리스트에 저장된 여러값들을 포함한 single object 이다.
//1. array literal
const arr = ['spring', 'summer', 'fall', 'winter'];
//2. Array()
const arr2 = new Array();
//bracket notation을 이용하여 array 각각의 items에 접근 가능하다.
arr[0]; //'spring'
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"]
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"]
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]