배열에서 지정된 위치에 아이템을 삭제하거나 추가할 수 있다.
splice(index, howmany, item, item, item, ...)
push(값)
배열의 맨앞에 값을 추가한다.
unshift(값)
원래 있던 값들은 전부 한칸씩 뒤로 이동한다.
pop()
배열의 첫번째 값을 삭제하고, 그 값을 반환한다.
shift()
두번째 있던 값들부터 전부 한칸씩 앞으로 이동한다.
- 배열의 처음부터 끝까지 배열의 모든 값을 반복처리한다.
(forEach(function(value, index) { ... })
- 반환값 : 없음(undefined)
1.
let students = ["김유신", "강감찬", "이순신", "류관순"];
// 배열에 들어있는 모든 값을 출력하기 - 소비하기
students.forEach(function(name, index) {
console.log(name);
});
2.
let numbers = [1, 3, 7, 9, 3, 9, 3, 6, 2];
// 배열에 들어있는 값의 총 합계를 계산해서 출력하기
int total = 0;
numbers.forEach(function(num) {
total += num;
});
console.log(total);
- 배열의 값 중에서 테스트를 통과한 값만 모아서 새로운 배열로 반환한다.
filter(function(currentValue, index) { ... }
- 반환값 : 배열
let numbers = [1, 3, 4, 9, 3, 9, 3, 6, 2];
// 짝수만 찾아내기
let evenNumbers = numbers.filter(function(num) {
return (num % 2 == 0)
});
console.log(evenNumbers) // ---> [4, 6, 2]
- 배열에 저장된 값을 다른 값으로 변환하는 메소드
- 반환값 : 배열
1.
let numbers = [1, 2, 3, 4];
// 배열의 값에 10을 곱한 값을 획득하기
let arr = numbers.map(function(num) {
return num * 10;
});
console.log(arr) // ---> [10, 20, 30, 40]
2.
let user = [{no:1, name:"홍길동", email:"hong@gmail.com", tel:"010-1111-1111"},
{no:3, name:"김유신", email:"kim@gmail.com", tel:"010-2222-2222"},
{no:7, name:"류관순", email:"ryu@gmail.com", tel:"010-3333-3333"}]
// 배열에서 회원이름만 가져오기
let arr = user.map(function(user) {
return user.name;
});
console.log(arr) // ---> ["홍길동", "김유신", "류관순"]
- 배열에 저장된 값을 하나의 값으로 줄이는 메소드
- 반환값 : 값 하나
let numbers = [10, 20, 30, 40];
let total = 0;
return result = numbers.reduce(function(total, num) {
return total + num;
});
console.log(result); // 100이 출력된다.
/*
function(total, num)은 배열의 값에 대해서 한번씩 실행된다.
function(0, 10) ---> 반환값 : 10 ---> total도 10이 된다.
function(10, 20) ---> 반환값 : 30 ---> total도 30이 된다.
function(30, 30) ---> 반환값 : 60 ---> total도 60이 된다.
function(60, 40) ---> 반환값 : 100 ---> total도 100이 된다.
*/
- 배열의 모든 요소를 연결해서 하나의 문자열로 반환한다.
let arr1 = ["홍길동", "김유신", "강감찬"];
let text1 = arr1.join();
// text1 --> "홍길동,김유신,강감찬"
console.log(text1);
let arr2 = ["홍길동", "김유신", "강감찬"];
let text2 = arr2.join("-");
// text2 --> "홍길동-김유신-강감찬"
console.log(text2);
- 지정된 값이 배열에서 처음으로 등장하는 인덱스를 반환한다.
존재하지 않으면 -1을 반환한다.let arr = [10, 20, 30, 40, 30, 20, 10, 30, 10, 20, 40]; // index값 : 2 let index = arr.indexOf(30); // index값 : 7 let index = arr.indexOf(30, 5);
- 지정된 값이 배열에서 마지막으로 등장하는 인덱스를 반환한다.
존재하지 않으면 -1을 반환한다.let arr = [10, 20, 30, 40, 30]; // index값 : 4 let index = arr.lastIndexOf(30);
- 배열의 모든 값에 대해서 한번씩 실행되며, true/false값을 반환한다.
true를 반환하는 첫번째 값이 최종결과가 된다.
let arr = [40, 35, 69, 50, 80]
// 배열의 값 중에서 60보다 크거나 같은 값 중에서 처음으로 발견되는 값
// result값 : 69
let result = arr.find(function(num, index) {
return num >= 60;
});
- 배열의 모든 값에 대해서 한번씩 실행되며, true/false값을 반환한다.
true를 반환하는 첫번째 인덱스가 최종결과가 된다.
let arr = [40, 35, 69, 50, 80]
// 배열의 값 중에서 60보다 크거나 같은 값 중에서 처음으로 발견되는 값의 인덱스
// index값 : 2
let index = arr.findIndex(function(num, index) {
return num >= 60;
});
- 배열의 모든 값에 대해서 한번씩 실행되며, true/false값을 반환한다.
true를 반환하는 마지막번째 값이 최종결과가 된다.
- 배열의 모든 값에 대해서 한번씩 실행되며, true/false값을 반환한다.
true를 반환하는 마지막번째 인덱스가 최종결과가 된다.