배열 Array

Subin Ryu·2024년 8월 27일

Object Vs 자료구조

  • Object는 연관된 특징과 행위를 묶은 것
  • 자료구조는 Object들을 묶어 놓은 것
  • javascript는 dynamically typed language이기 때문에 여러 타입의 object를 묶을 수 있지만 좋지 않은 형태

배열

  • 동일한 타입
  • 인덱스

배열 사용

  • 선언
const arr1 = new Array();
const arr2 = [1,2];
  • 인덱스 접근
const fruits = ['apple', 'banana'];
console.log(fruits.length); // 2
console.log(fruits[0]); // apple
console.log(fruits[fruits.length-1]); // 배열의 마지막 접근 banana
  • 반복문 사용
// a. for
for (let i=0; i < fruits.length; i++){
  console.log(fruits[i]);
}
// b. for of
for(let fruit of fruits){
  console.log(fruit);
} 
// c. forEach
fruits.forEach((fruit,index)=>console.log(fruit,index));
  • 추가, 삭제
fruits.push('kiwi'); // 마지막부터 추가 ['apple', 'banana', 'kiwi'];
fruits.pop(); // 마지막부터 제거 ['apple', 'banana'];
fruits.unshift('orange','lemon'); // 앞에서부터 추가 ['orange','lemon','apple', 'banana']
fruits.shift(); // 앞에서부터 제거 ['lemon','apple','banana']
fruits.push('peach','grape'); // ['lemon','apple','banana','peach','grape']
fruits.splice(1,1); // 인덱스1번부터 1개 제거 ['lemon','banana','peach','grape']
fruits.splice(1,1,'melon','apple'); // 인덱스1번부터 1개 제거하고 그 자리에 melon과 apple 추가 ['lemon','melon','apple','peach','grape']
//combine two arrays
const fruits2 = ['pear','lime'];
const newFruits = fruits.concat(fruits2); 
console.log(newFruits); // ['lemon','melon','apple','peach','grape','pear','lime']

shift과 unshift는 pop과 push보다 훨씬 느리므로 pop과 push를 사용하는 것이 좋음, splice에서 제거할 갯수를 0으로하고 그자리에 추가만 할 수 있음

  • 검색
console.log(fruits.indexOf('lime')); // 6
console.log(fruits.indexOf('banana')); // -1 없는 값에는 -1출력
console.log(fruits.includes('melon')); // true
console.log(fruits.includes('banana')); // flase
furuits.push('lemon');// ['lemon','melon','apple','peach','grape','pear','lime','lemon']
console.log(fruits.indexOf('lemon')); // 0 중복되면 첫번째 인덱스 출력
console.log(fruits.ㅣlastIndexOf('lemon')); // 7 마지막 인덱스 출력
profile
개발블로그입니다.

0개의 댓글