ES6 - Array

박재현·2021년 6월 8일
0

ES6

목록 보기
7/13

Array declaration

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

Looping over an array

for

for(let i = 0; i < fruits.length; i++) {
  console.log(fruits[i]);
}

for of

for(let fruit of fruits) {
  console.log(fruit);
}

forEach

콜백함수로 value, index, array를 출력할 수 있다.

fruits.forEach((fruit, index, array) => console.log(fruit, index, array));
// apple 0 [apple, banana]
// banana 1 [apple, banana]

Addtion, deletion, copy

push

맨 뒤에 value를 집어넣는다.

fruits.push('strawbarry', 'peach');

pop

맨 뒤에 value를 끄집어낸다.

fruits.pop();

unshift

맨 앞에 value를 집어넣는다.

이 때 전체 데이터를 오른쪽으로 한칸 shift 한다.(오래걸림)

fruits.unshift('strawbarry', 'peach');

shift

맨 앞에 value를 끄집어낸다.

이 때 전체 데이터를 왼쪽으로 한칸 shift 한다.(오래걸림)

fruits.shift();

shift와 unshift는 pop, push보다 엄청 느리다.

splice

특정 value를 삭제한다.

index와 deleteLength를 받아 삭제한다.

fruits = ['apple', 'banana', 'strawbarry', 'peach', 'lemon'];
fruits.splice(1);
console.log(fruits);  
// index 1부터 끝까지 삭제 ['apple']

fruits.splice(1, 1); 
console.log(fruits);
// index 1부터 1개 삭제 ['apple', 'strawbarry', 'peach', 'lemon']

fruits.splice(1, 1, 'melon', 'tomato');
// index 1부터 1개 삭제하고 3번째 parameter부터 삭제된 자리에 추가
console.log(fruits);
// ['apple', 'melon', 'tomato', 'strawbarry', 'peach', 'lemon']

concat

배열 2개를 합쳐준다.

const fruits1 = ['apple', 'banana'];
const fruits2 = ['melon', 'tomato'];
const newFruits = fruits1.concat(fruits2);
console.log(newFruits);  // ['apple', 'banana', 'melon', 'tomato']

Searching

indexOf

해당 value의 index를 찾아준다.

찾고자 하는 value가 array에서 중복될 때 제일 앞에 나온 value의 index를 출력한다.

console.log(fruits.indexOf('apple'));  // 0
console.log(fruits.indexOf('melon'));  // 2
console.log(fruits.indexOf('kakao'));  // -1 없으면 -1 출력

includes

value가 해당 array에 있는지 확인해서 true or false로 리턴한다.

console.log(fruits.includes('melon'));  // true
console.log(fruits.indexOf('kakao'));  // false

lastIndexOf

찾고자 하는 value가 array에서 중복될 때 제일 뒤에 나온 value의 index를 출력한다.

fruits = ['apple', 'banana', 'melon', 'apple', 'kakao'];
console.log(fruits.lastIndexOf('apple'));  // 3
profile
공동의 성장을 추구하는 개발자

0개의 댓글