Array 데이터를 묶는 자료구조라고 생각하면 된다.
object랑 Array 차이점
object를 묶어두는 것을 자료구조 (Array)라고 합니다.
보통 다른 언어(타입이 있는 언어)에서는 동일한 타입만 오브젝트를 자료구조로 묶을 수 있음
하지만
javascript 는 dynamically typed language 임으로 타입이 동적으로 정의가능하다.
*다양한 타입을 묶는게 가능하지만 옳지 않다.
Index position
const fruits = ['●', '◎']
console.log(fruits);
console.log(fruits.length);
console.log(fruits['0']);
console.log(fruits['1']);
console.log(fruits[fruits.length - 1]);// <- 배열의 마지막 데이터에 접근하는 방법
Looping over an array
// a. for
for (let i = 0; i < fruits.length; i++){
console.log(fruits[i]);
}
// b. for of
for (let fruit1 of fruits) {
console.log(fruit1);
}
// c. forEach
fruits.forEach(function(fruit, index){
console.log(fruit, index );
});
// 위와 동일
fruits.forEach((fruit) => console.log(fruit ));
print all fruits
// a. for
for (let i = 0; i < fruits.length; i++){
console.log(fruits[i]);
}
// b. for of
for (let fruit1 of fruits) {
console.log(fruit1);
}
// c. forEach
fruits.forEach(function(fruit, index){
console.log(fruit, index );
});
fruits.forEach((fruit) => console.log(fruit ));
Addtion, deletion, copy
// push: 뒤에 데이터 넣기
fruits.push('&','*');
console.log(fruits);
// pop: 뒤에서 부터 데이터 빼기
fruits.pop();
fruits.pop();
console.log(fruits);
// unshift: 앞에서 부터 데이터 넣기
fruits.unshift('&','*');
console.log(fruits);
// shift: 앞에서 부터 데이터 빼기
fruits.shift();
fruits.shift();
console.log(fruits);
shift 와 unshift 는 pop 과 push 보다 느리다
뒤에 아무것도 없는 공간에 넣었다 뺐다 함으로 기존 데이터는 건들지않아서 빠르게 진행 가능
앞에서 데이터 넣는다면 데이터를 먼저 옮긴 후 작업힘으로 뒤에 넣는 것보다 느리게 됨
가능하면 shift 와 unshift 보단 pop 과 push 를 사용하는것을 권장함
splice 데이터 지우기
fruits.push('&','*');
console.log(fruits);
fruits.splice(1);
// 개수 지정을 하지않으면 지정한 인덱스 부터 모든 데이터를 지움
console.log(fruits);
fruits.push('&','*','※');
console.log(fruits);
fruits.splice(1,1);
console.log(fruits);
fruits.splice(1,1,'#','□');
// 지우고 원하는 데이터 추가 가능
console.log(fruits);
combin two arrays 두가지 배열 묶기
const fruit2 = ['a','b'];
const newFruits = fruits.concat(fruit2);
console.log(newFruits);
배열안에 어떤 값이 몇번째 index 에 있는지 알고싶을때 사용가능
console.log(fruits);
console.log(fruits.indexOf('#'));
console.log(fruits.indexOf('1'));
// 배열에 없는 함수를 찾을 경우엔 마이너스(-) 값이 출력됨
console.log(fruits.includes('#'));
// 배열에 #이 있는지 없는지 true , 혹은 false 로 나타내주는 함수
console.clear();
// lastIndexOf
fruits.push('#');fruits.push('#');
console.log(fruits);
console.log(fruits.indexOf('#'));
console.log(fruits.lastIndexOf('#'));
// 동일 값이 있을 경우 마지막이 index 를 알려줌