본문 바로가기
부트캠프교육중/JavaScript

[JavaScript] 배열 메서드

by 뭉지야 2022. 12. 30.
728x90

# typeof
let words = ['피', '땀', '눈물']
typeof '문자열'    // 'string'
typeof 123    // 'number'
typeof words    // 'object'

typeof 배열 하면 object라고 나온다 !!!!
그래서 배열인지 아닌지 판별하려면 -> Array.isArray 써야한다

 

# Array.isArray : 배열인지 아닌지 판별 (결과값은 true, false)

let words = ['피', '땀', '눈물']

Array.isArray('문자열')   //false
Array.isArray(123)   // false
Array.isArray(words)   // true
Array.isArray([1,2,3])   // true
Array.isArray([])   // true     비어있어도된다!!!

 

# 4형제 ( push / pop / unshift / shift )
push: 뒤에 추가      -> arr.push('pre')
pop: 뒤에 삭제        -> arr.pop()
unshift: 맨앞꺼에 추가       -> arr.unshift('pre')
shift : 맨앞꺼 삭제           -> arr.shift()

 

# push / pop / unshift / shift / splice => 원본배열을 직접변경 (mutator method 혹은 mutable method)

slice / concat / join => 원본배열을 변경하지않음!

 

# splice

(제거할요소의 인덱스, 몇번째요소까지, 제거한후 대신 추가할 요소)  

 


# 특정값이 배열에 포함되어있는지 확인할수있는 => indexOf , includes 
let words = ['Radagast', 'the', 'Brown']

words.indexOf('the')     // 1  (인덱스값이 출력된다)
words.indexOf('없는단어')    // -1  (없는단어는 -1이 출력된다)
words.indexOf('Brown') !== -1    // true

words.includes('Brown')    // true
words.includes('없는것')    //false
근데 includes는 익스플로러에서 호환이 안된다

includes는 비추 !!!!!!!

 

# slice

- 복사+ 붙여넣기

slice(0,n)  :  0부터 n번째 앞까지 나오면된다

slice() : 전체를 의미한다

slice(-n) : 뒤에서 n개

 

let arr=[0,1,2,3,4,5,6,7,8]
arr.slice(0,4)=[0,1,2,3]
4번째 앞까지 복사해달라는 의미이다 (3자리까지나오면된다)


arr.slice() : 이렇게 아무것도 안쓰면 전체를 의미한다.

 

let arr=[0,1,2,3,4,5,6,7,8]이면
slice(-2)= [7,8]이다.
slice(-2)는 뒤의 두요소만을 말한다.
slice(arr.length-2)랑 slice(-2)랑 같은 의미이다.

 

let array= [a, b, c, d, e, f];
let newarray= array.slice(1); b부터 살린다

console.log(array);     // [a, b, c, d, e, f]
console.log(newarray);     // [b, c, d, e, f]

 

# let kimcoding = "010-1234-6767"
let codingArr = kimcoding.split("-")
console.log(codingArr)     // ["010", "1234", "6767"]

-> split 메서드는 전달인자로 들어가는 string을 기준으로 끊어 배열에 담아주고 그 배열을 리턴하는 메서드이다.
문자열 kimcoding은 '-'를 기준으로 숫자를 나눌수 있다.


#빈배열인지 확인하려면 
arr.length ===0 아니면
!arr.length

arr===[]; 이건 안된다.

 

# for(let el of arr) {
   console.log(el)

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

저거 두개 같은의미이다.
 el=arr[i]
 el자리에 요소 하나씩 들어가본다는거다.

맨위에있는 for~of문은 모든 요소를 순환하고 싶을때 편리하다
반복문내부에서 index를 사용해야할때는 불편하다.

 

# arr = []
-> =은 값을 할당하는 기호이다. 즉, 변수 arr에 []을 재할당하는 코드이다.


# let pokemon = ['이상해씨', '파이리', '꼬부기', '피카츄', '아구몬'];

-> typeof pokemon의 결과는 array입니다.  (X)
    typeof pokemon의 결과는 object입니다.

->pokemon.splice(5, 1, '이브이')를 입력하면 '아구몬'이 제거되고 그 자리에 '이브이'가 추가된다. (X)
  5번째 요소가 없기때문에 (undefined) 5번째 요소로 '이브이'가 추가된다.


#배열(arr)과 요소(element)를 입력받아 주어진 요소를 배열의 맨앞에 추가하고 해당 배열을 리턴하는 함수 addToFront()의 코드
-> function addToFront(arr, element) {
         arr.unshift(element);
         return arr; }



#배열(array)과 인덱스(n)을 입력받아 주어진 인덱스 이전의 요소들을 갖는 새로운 배열을 리턴하는 함수는?
-> function getElementsUpTo(array, n) {
       return array.slice(0, n); }
-> function getElementUpTo(array, n) {
        let result = array.slice()
        return result.slice(0,n) }

 

 

728x90

'부트캠프교육중 > JavaScript' 카테고리의 다른 글

[JavaScript] for in 과 for of  (0) 2022.12.31
[JavaScript] 객체  (0) 2022.12.31
[JavaScript] 배열과 반복문  (0) 2022.12.30
[JavaScript] 배열이란?  (0) 2022.12.30
[JS] 함수  (0) 2022.12.19