배열 내 각 데이터
let myArray = [3, 25, 'people', true]
에서 3은 첫 번째가 아닌 0번 인덱스에 해당인덱싱(indexing) - 인덱스를 통해 요소에 접근
접근하려는 배열 이름 뒤에 대괄호를 적은 후 대괄호 안에 접근하고자 하는 인덱스 번호를 적는다.
console.log(myarray[0]) //0번 인덱스에 접근
배열 이름 뒤에 수정하고자 하는 요소의 인덱스 번호를 적은 후 값을 할당한다.
let myArray = [3, 25, 'people', true]
myArray[0] = 300
console.log(myArray) //[300, 25 'peoople', true]
arr.length
let myArray = [3, 25, 'people', true]
console.log(myArray.length) //4
배열의 마지막 요소에 값 추가
arr.push(value)
파라미터로 추가할 요소 값 전달
let members = ['빨강', '노랑', '주황', '초록', '파랑'];
members.push('베이지');
console.log(members); //['빨강', '노랑', '주황', '초록', '파랑', '베이지']
배열의 첫 요소에 값 추가
arr.unshift(value)
파라미터로 추가할 요소 값 전달
let members = ['빨강', '노랑', '주황', '초록', '파랑'];
members.unshift('핑크');
console.log(members); //['핑크', '빨강', '노랑', '주황', '초록', '파랑']
배열의 마지막 요소 부터 삭제
파라미터는 따로 전달하지 않는다.
arr.pop() //한 줄만 작성할 경우 마지막 인덱스만 삭제
위 처럼 한 줄만 작성할 경우 마지막 요소만 삭제되며, 아래와 같이 세 줄을 작성할 경우 3개의 요소가 삭제된다.
arr.pop()
arr.pop()
arr.pop()
배열의 맨 앞 요소 부터 삭제
파라미터는 따로 전달하지 않는다.
pop과 마찬가지로 한 줄만 작성할 경우 맨 앞 요소만 삭제되며 여러 줄 작성할 경우 적은 요소 개수 만큼 삭제된다.
let members = ['빨강', '노랑', '주황', '초록', '파랑'];
members.shift();
console.log(members); // ['노랑', '주황', '초록', '파랑']
let members = ['빨강', '노랑', '주황', '초록', '파랑'];
members.splice(4); //4번 인덱스 '파랑' 삭제
let members = ['빨강', '노랑', '주황', '초록', '파랑'];
members.splice(1); //1번 인덱스 '노랑' 부터 뒤의 요소들이 모두 삭제
splice(삭제 시작할 요소의 인덱스, 삭제할 개수)
let members = ['빨강', '노랑', '주황', '초록', '파랑'];
members.splice(1, 2); //1번 인덱스부터 요소 2개 삭제 -> ['빨강', '초록', '파랑']
members.splice(1, 1); //1번 인덱스 1개만 삭제 -> ['빨강', '주황', '초록', '파랑']
splice(삭제를 시작할 요소의 인덱스 번호, 삭제할 개수, 추가할 요소)
let members = ['빨강', '노랑', '주황', '초록', '파랑'];
members.splice(1, 1, 'Nice', 'Hi'); // ['빨강', 'Nice', 'Hi', '주황', '초록', '파랑']
cf. 응용 - 요소 수정
splice(삭제할 요소 인덱스, 삭제할 개수, 수정할 요소)
let members = ['빨강', '노랑', '주황', '초록', '파랑'];
members.splice(2, 1, '민트'); //['빨강', '노랑', '민트', '초록', '파랑']
members.splice(2, 2, '다홍', '보라'); //2번 인덱스로부터 2개, 즉 2번과 3번 인덱스 삭제 -> ['빨강', '노랑', '다홍', '보라', '파랑'];
cf. 삭제할 개수를 0으로 설정함으로써 배열 내 어느 곳에든 요소를 추가할 수도 있다. 이때 어떠한 요소도 삭제되지 않으며 기존 인덱스 위치에 있던 요소는 뒤로 밀려난다.
splice(요소 추가할 인덱스, 0, 추가할 요소)
let members = ['빨강', '노랑', '주황', '초록', '파랑'];
members.splice(1, 0, 'Nice', 'Hi'); // 1번 인덱스 위치에 'Nice', 'Hi' 추가 -> ['빨강', 'Nice', 'Hi', '노랑', '주황', '초록', '파랑']
let myArray = [3, 25, 'people', [100, 300, 700], true]
console.log(myArray[3][0]) //100
array.indexOf(item)
-> array에 item이 포함되어 있는지 확인let brands = ['Google', 'Kakao', 'Naver', 'Kakao'];
console.log(brands.indexOf('Kakao')); //1
console.log(brands.indexOf('Daum')); //-1
indexOf와 반대로 뒤에서 부터 탐색
let brands = ['Google', 'Kakao', 'Naver', 'Kakao'];
console.log(brands.lastIndexOf('Kakao')); //3
console.log(brands.lastIndexOf('Daum')); //-1
array.includes(item)
특정 값의 인덱스를 리턴하는 indexOf, lastIndexOf와는 달리 값이 배열 내에 존재하는지 그 여부만을 확인하고자 할 때 includes 메서드를 활용한다.
배열 내 해당 값이 존재할 경우 true, 존재하지 않을 경우 false를 리턴한다.
let brands = ['Google', 'Kakao', 'Naver', 'Kakao'];
console.log(brands.includes('Kakao')); //true
console.log(brands.includes('Daum')); //false
array.reverse()
let brands = ['Google', 'Kakao', 'Naver', 'Kakao'];
console.log(brands); //["Google", "Kakao", "Naver", "Kakao"]
brands.reverse();
console.log(brands); //["Kakao", "Naver", "Kakao", "Google"]