배열 기초
- 배열 용어알기
- 배열 특정 인덱스 요소를 조회, 변경하기
- 이중배열 [배열의 요소 안에 배열이 있는것] 이해하기
- 이중배열의 요소 조회, 변경하기
배열의 반복
- 배열의 요소 반복적으로 불러오기 - 다양한 for 문 + 조건문, 이중반복문 응용
- 문자열과 배열의 타입변환 메소드 알기 (" ") ex-str.split(" ").join(" ")
배열 기초 메소드
- 배열요소 조회,추가,삭제,복사,분리 메소드
=> unshift, shift, slice, length- 변수, 데이터 등 값의 배열 인지 및 판별 (Array.isArray)
- 배열요소 추가 및 삭제 메소드
=> push, pop
배열이란 ?
배열의 각 값을 엘리먼트라고 부른다. 배열의 순서는 인덱스라는 용어를 쓰고 0부터 시작한다.
index 를 벗어나면 Undefinded 가 출력된다.
이중배열이란 ? 배열 안에 배열이 있는것으로 [[1,2],[3,4],[5,6]]
여기서 0번째 인덱스값은 [1,2] 이고, 0번째 인덱스값의 0번째 인덱스값은 1이다.
변수명[0][0] 으로 나타나지게 된다.
.을 이용하여 변수가 가지고있는 속성에 접근 가능.
빈 배열은 배열이 비어있다고 하더라도 하나의 공간을 차지하고 있기 때문에
[빈 배열] === [빈 배열] 은 성립할 수 없다. // false
배열 또한 조건문, 반복문이 매우매우 많이쓰인다.
for(let i=0; i<str.length; i++){
if(str[i] == ''){~~}
}
라고 쓸 수도 있겠지만 다음과 같은 메소드를 이용해 한큐에 해결도 가능하다.
split(" ") / ("-") : 띄어쓰기 , 하이픈 기준으로 배열을 만들어준다.
ex) let words = 'this is the coding blog'
words.split(" ") // 5, ['this','is','the,'coding','blog']
let wordArray = ['this','is','the,'coding','blog']
wordArray.join() // 'this,is,the,coding,blog'
wordArray.join('') // 'thisisthecodingblog'
wordArray.join(-) // 'this-is-the-coding-blog'
typeof obj :
문자열 : string, 숫자는 number 으로 나오는 것 처럼 배열은 obj 로 나타낸다.
Array.isArray() 인자가 배열형태인지 아닌지 불리언 타입으로 리턴해준다.
ex) words = ['가','나','다']
Array.isArray(words) // true
.push() => 괄호안에 추가하고싶은 값을 넣고 마지막 인덱스에 추가
.pop() => 마지막 값을 삭제할 수 있다. 괄호안에는 안넣어줘도 됨.
.unshift() => 맨 앞에 인덱스 추가.
.shift() => 맨 앞에 인덱스 삭제.
unshift / shift 메소드 자체는 추가 및 삭제 시length 를 리턴하기 때문에 최종리턴은 변수명을 리턴해준다.
헷갈리는 메소드 :
arr.slice() 는 ? (immutable)
slice(시작,끝) array 자체에는 영향을 주지 않는다. 배열 자체를 복사할 때 사용하기도 함.
arr.splice() 는? (mutable)
array 의 추가, 변경 삭제
splice(제거시작할 인덱스, 제거할 엘리먼트 갯수, 추가할 엘리먼트)
let arr = ['apple','is']
arr.push('good') // 맨 마지막에 good 추가.
arr.pop() // 방금 맨 마지막에 추가된 good 삭제
앞쪽에 추가하려면
arr.unshift('an') // ['an','apple','is','good']
arr.shift() // 맨 앞의 an 삭제
배열을 수정하지않는 추가메소드 (Immutable method)
immutable 메소드 중 하나로, concat() 을 들 수 있다. concat또한 push처럼 배열 및 값을 추가하는점에서 비슷하나, 변하지 않는 성질을 가지고 있다.
-mdn 참조 ㅎ
*콘솔에서 배열을 확인 할 때
console.table 로 확인하면 더 명확하게 보기 쉽다.