[javascript] 다시 완전 기초부터 - 02

류태오·2022년 6월 16일
3

Front-end

목록 보기
8/13
post-thumbnail

... 앞의 글에 이어서

강의

벨로퍼트와 함께하는 모던 자바스크립트

1장. 자바스크립트 입문
https://learnjs.vlpt.us/basics/

배열 내장 함수

forEach

  • 배열의 요소 각각에 대해 실행
function zoo = [‘pig’, ‘cat’, ‘dog];

1) 기본적으로 원리는 아래와 같이 함수를 선언해서 콜하는 방식

function print(animal) {
	console.log(animal);
}
zoo.forEach(print);

2) 보통 아래와 같이 함수를 안에서 선언쓰기 때문에 구조적으로 헷갈려 보인다.

zoo.forEach(animal => {
	console.log(animal);
});

map

  • 배열의 요소 각각에 대하여 (함수를 호출하고 그 결과로) 새로운 배열을 반환
const numbers = [1, 2, 3];

1) 마찬가지로 아래와 같이 선언한 함수를 콜

const square = n => n*n;
const squared = numbers.map(square);

2) 보통 아래와 같이 map안에서 선언

const squared = numbers.map(n => n*n);

indexOf, findIndex, find

  • indexOf : 배열에서 특정 요소의 index값 찾을 때 (텍스트일 경우)
  • findIndex : 배열에서 특정 요소의 index값 찾을 때 (객체일 경우, 조건있을 경우)
  • find : 배열에서 특정 요소를 찾아올 때
const index = numbers.indexOf(2); //1

filter

  • 조건에 맞는 배열만 찾아 새로운 배열을 반환
const zoo = [
 {
   name: "dog",
   sound: "멍멍",
   leg: 4
 },
 {
   name: "cat",
   sound: "야옹",
   leg: 4
 },
 {
   name: "bird",
   sound: "짹짹",
   leg: 2
 }
];
const index = zoo.findIndex((animal) => animal.name === "dog");
const animal = zoo.find((animal) => animal.name === "dog");
const fourlegs = zoo.filter((animal) => animal.leg === 4);
console.log(index); // 0
console.log(animal); // {name: "dog", sound: "멍멍"}
console.log(fourlegs); // [Object(dog), Object(Cat)]

concat 그리고 "..." 스프레드 연산자

  • 배열 합치기
    아래 두 문장은 같은 결과
    *concat은 배열 껍데기를 벗길 때도 사용
	const newArray = arr1.concat(arr2);
 	const newArray = [...arr1, ...arr2];

splice & slice

  • 배열 가져오기
    두 함수의 매개변수와 효과가 다르니 주의!
    • splice(index, cnt); *잘라온다 (원본 손상)
    • slice(start, end); *복사한다 (원본 유지)

push, pop, shift, unshift

  • 배열 안에 넣고 빼기
  • ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ
    unshiftㅤㅤ➡️⬅️ㅤㅤㅤpush
    ㅤㅤㅤㅤㅤㅤ[배열]ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ
    shiftㅤㅤㅤ⬅️➡️ㅤㅤㅤpop
  • shift & unshift : 인덱스를 변경하기 때문에 느리다

    • shift : 앞에서 뺌
    • unshift : 앞에서 넣음
  • push & pop : 배열 요소만 넣고 빼기 때문에 빠르다

    • push : 뒤에서 넣음
    • pop : 뒤에서 뺌
~~쉬운 개념인데 항상 쓸 때마다 헷갈렸는데.~~ _이제야 확실하게 알았다. shift 방식은 인덱스를 변경하는 방식이라는 것, 배열에 추가할 때는 당연히 뒤에 넣지 않는가. 퍼포먼스 차이도 이해했다._
shift는 튀어나오게, unshift는 돌려놓는 느낌으로 기억하자.

join

  • 배열을 텍스트로 출력
    const numbers = [1, 2, 3];
    console.log(numbers.join());    // 1,2,3
    console.log(numbers.join(",")); // 1,2,3
    console.log(numbers.join(""));  // 123
    console.log(numbers.join(" ")); // 1 2 3
    console.log(numbers.join("-")); // 1-2-3

... 남은 건 reduce ... 뒤에 이어집니다.

profile
개발하는 디자이너 그리고 실험가

0개의 댓글