개인공부/TIL(Today I Learned)

TIL 8일차_배열과 객체

soon327 2021. 1. 26. 00:44

배열과 객체


배열의 추가, 삭제

  • array.push(추가할 엘리먼트) //맨 뒤의 엘리먼트 추가

  • array.pop //맨 뒤의 엘리먼트 제거

  • array.unshift(추가할 엘리먼트) //맨 앞의 엘리먼트 추가

  • array.shift //맨 앞의 엘리먼트 제거

    이 넷은 모두 mutable 메쏘드이다.
    따라서, 리턴할 때는 변수에 할당을 해줘야한다.
    변수에 할당하지 않은채 리턴하게되면 각 메쏘드마다 특정 값을 리턴하게되는데
    예를 들어, array.unshift는 바로 리턴하면 array.length를 리턴한다.

문자열을 배열로, 배열을 문자열로

  • str.split('나눌기준')
    문자열을 배열로 나눈다.
    나눌기준이 ''면 커서단위(?)로 나뉘고, 스페이스가 자주쓰인다.
    나눌기준을 적지 않고 str.split()으로 작성하면 인덱스 하나에 모든 문자열이 들어간다.
  • array.join('연결기준')
    배열을 문자열로 연결한다.
    연결기준이 ''면 쭉 이어져서 연결되고, 스페이스나 -가 자주 쓰인다.
    연결기준을 적지 않고 array.join()으로 작성하면 ,로 연결된다.

array.slice와 array.splice

  1. array.slice

array.slice는 immutable이다.
array.slice() 이렇게 괄호 안을 비우면, 그냥 배열이 복사된다.
따라서 간편히 배열을 복사할 때 자주 쓰인다.

  1. array.splice

    const months = ['Jan', 'March', 'April', 'June']; 
    months.splice(1, 0, 'Feb'); 
    // index1에 feb삽입= ["Jan", "Feb", "March", "April", "June"] 
    
    const months = ['Jan', 'March', 'April', 'June']; 
    months.splice(2, 1, 'May'); 
    // 인덱스2에, 2부터 1개 삭제하고, MAY 삽입 = ["Jan", "March", "May", "June"] 
    
    const months = ['Jan', 'March', 'April', 'June']; 
    months.splice(1, 2); 
    //인덱스 1에, 1부터 2개 삭제 = ["Jan", "june"]
    

array.splic는 mutable이다.
splice메쏘드는 문자열에선 쓸 수 없다. 배열에서만.

배열 etc.

  • Array.iaArray(변수) 해당 변수 또는 값이 배열인지 확인 True/Flase
  • console.table() 콘솔창에서 표형식으로 볼 수 있다. 배열 볼 때 편리.
  • 빈 배열 [][]는 같지 않다. 객체에서도 마찬가지 인데,
    이유는 배열과 객체는 주소값을 갖기 때문이다.
    때문에,[][]를 비교해보면 주소가 다르기 떄문에 []===[] //false가 된다.

객체를 불러오는 2가지 방법

(ex)user라는 객체의 email key를 불러오고싶다.

  1. dot notation: user.email

  2. Bracket notation: user['email']
    bracket notation은 key value에 따옴표를 써줘야 한다.

  • Bracket notation을 써야할 때.
    = 변수나 함수의 인자와 같이 key value가 변할 수 있을 때 사용한다.

    let user={
      name: '철수',
      age: 16
    }
    function getProperty(object,list){
      return object[list]
    }
    getProperty(user,'name'); //철수

    object.list로하면 list라는 property의 value가 출력된다. undefined가 출력되겠지.
    근데 name, age 등 함수에 입력한 property의 value을 리턴해야하므로 dot notation은 쓰지못한다.

객체의 추가와 삭제

  1. 추가
    변수.key=추가할 value값 객체의 value값으로는 무엇을 넣어도 된다. 문자열, boolean, 배열 등등.
  2. 삭제
    delete 변수.key

for of와 for in

  1. for(let er(변수 아무거나) of array 배열의 모든 엘리먼트가 변수에 입력된다.
    스트링, 배열, 유사배열에서만 쓸 수 있다.

  2. for(let key(변수 아무거나) in object 객체의 모든 value가 변수에 입력된다.

    for offor in 연산자 모두, 변수에 어떤 값을 써도 각각 element와 key라고 자동으로 인식한다.
    일반적인 for문과 같이 for문 안에 식이 있으면
    element or key 한개->식 대입->또 다른 한개->식대입 이렇게 작동하는 듯 하다.

'개인공부 > TIL(Today I Learned)' 카테고리의 다른 글

TIL 10일차_git과 CLI  (0) 2021.01.28
TIL 9일차_데이터의종류와 SCOPE  (0) 2021.01.27
TIL 7일차_CSS기본  (0) 2021.01.25
TIL 6일차_시맨틱태그  (0) 2021.01.24
TIL 5일차  (0) 2021.01.23