Array – (1) grammar

  • JavaScript는 dynamically typed language
  • Array에 다양한 종류의 데이터를 담을 수가 있다.(좋지 않음)
// 1. Declaration
const arr1 = New Array();
const arr2 = [1, 2];

// 2. Index position
const fruits = ['🍎','🍊'];
console.log(fruits); // '🍎' , '🍊'
console.log(fruits.length); //2
console.log(fruits[0]); // 🍎
console.log(fruits[fruits.length -1]); // 🍊

// 3. Looping over an array 
// for of
for (let fruit of fruits) {
  console.log(fruit);
}

// forEach
fruits.forEach(fruit) => (console.log(fruit));

// 4. Addition, deletion, copy
// push : add an item to the end
fruits.push('🍋','🍌');

// pop : remove an item from the end
fruits.pop();

// unshift : add an item to the beginning
fruits.unshift('🍋');

//shift : remove an item from the beginning
fruits.shift();

//note!! shift, unshift 는 당연히 pop,push보다 훨씬 느리다.

// splice : remove an item by index position
fruits.push('🍎','🍊','🍋','🍌');
fruits.splice(1); //  인덱스 1부터 모두 지운다
fruits.splice(1, 2); // 인덱스 1부터 2개를 지운다
fruits.splice(1, 1, '🍋','🍌'); // 지워진 자리에 🍋,🍌 를 넣는다.

// combine two arrays
const fruits2 = ['🍋','🍌'];
const newFruits = fruits.concat(fruits2); // 배열 두개를 합침

// Searching
// find the index
console.log(fruits.indexOf('🍋')); // 몇번째 있는지 인덱스를 리턴
console.log(fruits.indexOf('🍌')); // '🍌'가 배열에 없으면 -1을 리턴
console.log(fruits.includes('🍋')); // 🍋가 배열에 있으면 True 리턴

// lastIndexOf
fruits.push('🍎','🍊');
console.log(fruits.indexOf('🍎')); // 맨 처음 사과가 나오는 인덱스를 반환
console.log(fruits.lastIndexOf('🍎')); //맨 마지막 사과가 나오는 인덱스를 반환