본문 바로가기

Programming Language/Javascript

[강의노트][드림코딩] 배열 Array

드림코딩 자바스크립트 배열 강의 노트

 

Object는 서로 연관된 특성을 그룹화
반면 유사한 type의 object를 그룹화 하면 자료 구조 array
Javascript는 여러 type의 object 그룹화 가능하나 권장되지 않음

Array

1. Declaration
const arr1 = new Array ();
const arr2 = [1,2];


2. Index position
const fruits = ['apple', 'banana', 'melon'];
console.log(fruits);
console.log(fruits.length);
console.log(fruits[0]); // object 에선 ['key'] 값을 String으로 전달했을 때와 유사하게 []안에 인덱스번호 기재
console.log(fruits[fruits.length-1]); // 마지막 것
 
3. Looping - Print all fruits
1) for(let i=0; i<fruits.length; i++){
    console.log("I like "+fruits[i]);
}
2) for..of 임의 설정한 a가 Array의 원소가 되어 각 원소별로
for(let a of fruits){
    console.log("Do you like "+ a +"?");
}
3) forEach 배열 안의 값마다 내가 전달하는 함수를 실행
fruits.forEach((fruit, index, array)=>{
    console.log(fruit, index, array);
});

4. Add, delete, copy
1) Add & Delete
 - to the end : push & pup
fruits.push('orange', 'tofu');
console.log(fruits);
fruits.pop(); // 하나씩
console.log(fruits.pop());
console.log(fruits);

 - in the first : unshift & shift
fruits.unshift("beef", "garlic");
console.log(fruits);
fruits.shift();
console.log(fruits);
console.log(fruits.shift());
console.log(fruits);
** note!!! - shift & unshift는 매우 느림 - 기존 데이터 인덱스 이동 필요

fruits.push('strawberry', 'peach', 'pineapple');
console.log(fruits);
console.log(fruits.length);


2) Revmoe an item by index position
 - splice

fruits.splice(3,1, "rotten tomato", "garlic");
console.log(fruits);

 - combine two arrays - 뒤에 이어서 붙임
const fruits2 = ['pear', 'lemon'];
const arrFruits = fruits.concat(fruits2);
console.log(arrFruits);


5. Serching
 - find the index
console.log(arrFruits.indexOf('lemon')); // index number + 최초 값만
console.log(arrFruits.indexOf('beef')); // 배열 안에 해당 값이 없을 경우 -1
 - check the index
console.log(arrFruits.includes('lemon'));
 - lastIndexOf
arrFruits.push('banana', 'lemon');
console.log(arrFruits);
console.log(arrFruits.lastIndexOf('banana'));


const keyFruits = arrFruits.keys();
for(let k of keyFruits){
    console.log(k);
}

// 🍌🍎❤️