# 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) }
'부트캠프교육중 > 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 |