프로그래밍에서 데이터를 정리하는 것은 중요한 일이다.
Array는 데이터를 List로 만들어 관리하는 방법으로 순서에 따라 번호를 매겨 관리할 수 있으며 모든 유형의 데이터를 저장할 수 있다.
변수가 하나의 데이터를 저장하기 위함이라면 배열은 여러개의 데이터를 하나로 묶어 저장하기 위함이다.
: Array를 만드는 방법은 element
를 square bracket[]
에 넣는 것만으로 쉽게 만들 수 있다.
[1, 'ash', true]
''
와 같이 비어있는 Element도 배열에 들어갈 수 있다.var newArray = [1, 'ash', true];
console.log(newArray); // Output: [1, 'ash', true]
: 각각의 데이터(엘리먼트)를 묶어만 둔다면 묶는 의미가 없다. 이것을 꺼내서 사용할 수 있어야 한다.
배열의 Element에는 인덱스
라는 각각의 위치 번호가 존재한다.
이것을 통해 Element에 접근해서 여러가지 기능을 수행할 수 있다.
var newArray = [1, 'ash', true];
1
의 index는 0, 'ash'
는 1, true
는 2가 된다.var newArray = [1, 'ash', true];
console.log(newArray[0]) // Output: 1
배열이 저장된 객체명
[인덱스 번호]
으로 접근할 수 있다.[]
안에는 인덱스 번호를 넣으면 된다.newArray[newArray.length - 1]
.length
를 이용해서 접근도 가능하다.(왜냐하면 length가 number를 반환하기 때문이다.): Element는 언제든 변경이 가능하다.
var newArray = [1, 'ash', true];
newArray[0] = 2
[]
을 사용하여 접근한 후 초기화 해주면 된다.2
로 변경된 것을 확인할 수 있다.: 엘리먼트를 추가하는 방법은 사실 아래 나올 push 메서드로 가능하다.
하지만 다른 방법으로도 가능하다.
cities[0] = "서울"; // ["서울"]
cities[1] = "대전"; // ["서울", "대전"]
cities[2] = "대구"; // ["서울", "대전", "대구"]
cities[5] = "제주도"
["서울", "대전", "대구", undefined, undefined, "제주도"]
: const로 선언된 변수는 재할당 할 수 없다. (참조 : Scope)
그러나 const로 선언된 배열의 Element
는 언제든 변경이 가능하다.
즉, 새로운 배열을 할당하거나 다른 변수로 초기화 하는 것은 불가능 하지만 Element는 변경할 수 있다는 의미
: 배열은 기본 Property와 Mathod를 가진다.
그중 Property는 .length
라는 기본 속성이 있다.
const newName = ['Sang Hyuk', 'Gyon'];
console.log(newName.length); // Output: 2
: 배열의 가장 마지막에 새로운 엘리먼트 1개 이상을 추가 시킨다.
const animals = ['pigs', 'goats', 'sheep'];
const count = animals.push('cows');
console.log(count); // output: 4
console.log(animals); // output: ["pigs", "goats", "sheep", "cows"]
animals.push('chickens', 'cats', 'dogs');
console.log(animals); //output: ["pigs", "goats", "sheep", "cows", "chickens", "cats", "dogs"]
길이
를 반환한다. 마지막에 추가시킬 엘리먼트들
)길이
만큼 output된다.: push는 한개의 엘리먼트만 추가시켰다면 여러개의 엘리먼트를 추가시키고 싶을때는 concat을 사용한다.
const abc = ['a', 'b', 'c', 'd', 'e'];
const li = abc.concat('f', 'g');
console.log(li); // output: ['a', 'b', 'c', 'd', 'e', 'f', 'g']
: 배열에서 마지막 엘리먼트를 제거한다.
const plants = ['broccoli', 'cauliflower', 'cabbage', 'kale', 'tomato'];
console.log(plants.pop()); // output: "tomato"
console.log(plants); // output: ["broccoli", "cauliflower", "cabbage", "kale"]
plants.pop();
console.log(plants); // output: ["broccoli", "cauliflower", "cabbage"]
엘리먼트
를 반환한다.파라미터는 없다
undefined
를 반환한다.: 배열의 맨 앞 엘리먼트를 제거한다.
const newArray = [1, 2, 3];
const firstElement = newArray.shift();
console.log(newArray); // output: [2, 3]
console.log(firstElement); // output: 1
엘리먼트
를 반환한다.파라미터는 없다
undefined
를 반환한다.: 배열의 맨 앞에 새로운 엘리먼트 1개 이상을 추가 시킨다.
const newArray = [1, 2, 3];
console.log(newArray.unshift(4, 5)); // output: 5
console.log(newArray); // output: [4, 5, 1, 2, 3]
길이
를 반환한다. 맨앞에 추가시킬 엘리먼트들
)길이
만큼 output된다.: 배열의 원하는 시작점
부터 끝점
까지를 복사해 새로운 배열로 반환한다.
const animals = ['ant', 'bison', 'camel', 'duck', 'elephant'];
console.log(animals.slice(2)); // output: ["camel", "duck", "elephant"]
console.log(animals.slice(2, 4)); // output: ["camel", "duck"]
console.log(animals.slice(1, 5)); // output: ["bison", "camel", "duck", "elephant"]
배열
을 반환한다.시작점
, 끝점
) 인수
가 아닌 인덱스
가 위치한다.: 배열의 기존 엘리먼트를 삭제, 교체하거나 추가하여 기존 배열을 변경합니다.
const months = ['Jan', 'March', 'April', 'June'];
months.splice(1, 0, 'Feb');
console.log(months); // output: ["Jan", "Feb", "March", "April", "June"]
months.splice(4, 1, 'May');
console.log(months); // output: ["Jan", "Feb", "March", "April", "May"]
배열
을 반환한다. 변경 시작점
, 제거할 엘리먼트 수
, 추가시킬 엘리먼트들
) : 배열 내에서 찾고자 하는 엘리먼트를 서칭하여 첫번째로 발견된 인덱스
를 반환한다.
const beasts = ['ant', 'bison', 'camel', 'duck', 'bison'];
console.log(beasts.indexOf('bison')); // output: 1
console.log(beasts.indexOf('bison', 2)); // output: 4
console.log(beasts.indexOf('giraffe')); // output: -1
인덱스
를 반환한다. 찾고자 하는 엘리먼트
, 몇번째 위치에 있는지
) 최초 엘리먼트
의 인덱스
를 반환한다.-1
을 반환한다.: 배열 안의 엘리먼트가 주어진 조건을 통과하는지 테스트한다.
function isBiggerThan10(element, index, array) {
return element > 10;
}
[2, 5, 8, 1, 4].some(isBiggerThan10); // false
[12, 5, 8, 1, 4].some(isBiggerThan10); // true
: 배열 안의 엘리먼트가 모두
주어진 조건을 통화하는지 테스트한다.
: 배열 안의 엘리먼트를 정렬하고 싶을때 사용한다.
: 배열 안의 엘리먼트를 역순으로 정렬하고 싶을때 사용한다.
: 배열 안에 배열을 만들 수 있다.
const nestedArr = [[1], [2, 3]];
console.log(nestedArr[1]); // Output: [2, 3]
console.log(nestedArr[1][0]); // Output: 2