[TIL] ARRAY

j1_0·2022년 12월 4일

DAY25 <ARRAY>

배열 ARRAY

리스트 형태의 객체
배열은 데이터를 나열하고, 각 데이터를 인덱스에 대응하도록 구성된 데이터의 구조이다.

INDEX

배열은 대괄호([ ]) 로 묶고 배열안의 요소를 index 값으로 가져와 접근, 제어 할 수 있다.

    
    let arr = [];
    let arr1 = ['apple','banana'];
    
    console.log(arr1[0]); //apple // 접근
    arr1[0] ='test'; //제어 
    console.log(arr1); // ['test','banana']
 
    

LENGTH

length 라는 속성(porperty)은 배열의 최대 인덱스 +1 (마지막 인덱스 +1) 이다.

  let testArr = [];
  testArr[200] =3;
  console.log(testArr.length); //201
  

DATA TYPE

자바스크립트의 배열의 요소에는 모두 다른 데이터 타입이 들어갈 수 있다.

다른 언어에서는 배열의 요소에는 동일한 데이터 타입을 가져야한다.


let testArr = [
  3,
  "sam",
  function () {
    return "sam";
  },
  [2, 3, 4],
];
console.log(testArr); //[ 3, 'sam', [Function (anonymous)], [ 2, 3, 4 ] ]

STACK

스택은 LIFO (Last In First Out) 후입 선출 방식의 자료구조이다.
가장 마지막에 데이터를 밀어 넣고, 마지막에 밀어 넣은 데이터 부터 꺼내는 구조이다.

push 배열의 처음에 데이터를 밀어 넣는다.
pop 마지막에 들어온 데이터를 꺼낸다.


let furits = ['귤', '망고', '딸기','복숭아'];
language.pop();
console.log(language); //['귤', '망고', '딸기']
language.push('복숭아복숭아');
console.log(language); // ['귤', '망고', '딸기','복숭아복숭아']

QUEUE

큐는 FIFO (First In First Out) 선입 선출 방식의 자료구조이다.
가장 첫번째에 데이터를 밀어 넣고, 마지막에 넣은 데이터를 꺼내는 구조이다.

shift 가장 앞에 있는 것을 빼고 뒤에 있는 인덱스를 하나씩 줄이면서 앞으로 당겨준다.
unshift 인덱스를 하나씩 밀어 준 뒤 가장 앞으로 값을 추가해준다.

    let fruits ['귤','망고','딸기','복숭아'];
    console.log(fruits); 
    people.shift();
    console.log(fruits); //['망고','딸기','복숭아']
    
    people.unshift('귤귤');
    console.log(fruits);//['귤귤','망고','딸기','복숭아']
  • pop과 push가 효율이 더 좋다. (인덱스를 건들이지 않는다)

배열을 많이 쓰는 이유는 반복문에 최적화 되어있기 때문이다.
배열이 유일하게 가지고 있는 속성 length 가 있기 때문에, for 문을 돌리기 쉽다.


For문

일반적인 for 문

  
 let testArr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
  for (let i = 0; i < testArr.length; i++) {
    if (testArr[i] % 2 === 0) {
      console.log(testArr[i]); //2,4,6,8,10
    }
  }

배열로 값을 출력하기

 function testFunc(arr) {
   let result = [];
   for (item of arr) {
     if (item % 2 !== 0) {
       result.push(item);
     }
   }
   return result;
 }
 const testInput = [11, 111, 2, 4, 6, 10, 223];
 console.log(testFunc(testInput)); //[11,111,223]

for in 문

배열의 요소를 key 라는 이름으로 순회한 뒤, key를 return 하기

 for (key of testArr) {
console.log(key);
}

for of 문

배열의 요소를 value라는 이름으로 순회를 한 뒤, value를 return 하기

	for (value of testArr) {
  console.log(value);
}

0개의 댓글