배열의 메소드 (Array's Method)
splice
- splice (startIndex) : 요소 지우기
// 배열의 메소드 (Array's Method)
let members = ['뽀로로', '루피', '에디', '크롱', '포비'];
console.log(members); // (5) ['뽀로로', '루피', '에디', '크롱', '포비']
// 요소 지우기 - 흔적남음
delete members[4];
console.log(members); // (5) ['뽀로로', '루피', '에디', '크롱', empty]
// splice (요소 지우기) - 흔적안남음
members.splice(4);
console.log(members); // (4) ['뽀로로', '루피', '에디', '크롱']
- splice (startIndex, deleteCount): 요소 시작값부터 n개 지우기
let members = ['뽀로로', '루피', '에디', '크롱', '포비'];
members.splice(1, 2);
console.log(members); // (3) ['뽀로로', '크롱', '포비']
- splice (startIndex, deleteCount, item): 요소 시작값부터 n개지우고 그 자리에 item 추가하기
let members = ['뽀로로', '루피', '에디', '크롱', '포비'];
members.splice(1, 1, '해리', '로디');
console.log(members); // (6) ['뽀로로', '해리', '로디', '에디', '크롱', '포비']
- splice (startIndex, 0, item): 요소 시작값 뒤에 그 자리에 item 추가하기
let members = ['뽀로로', '루피', '에디', '크롱', '포비'];
members.splice(1, 0, '해리', '로디');
console.log(members); // (7) ['뽀로로', '해리', '로디', '루피', '에디', '크롱', '포비']
실습
splice 메소드를 활용하여 아래의 미션들을 수행하세요.
1. fruits 배열에 '토마토'를 삭제하고 그 자리에 '사과', '청포도'를 추가해주세요.
2. fruits 배열의 첫 번째 요소를 삭제해주세요.
3. ages 배열에 마지막 요소를 삭제해주세요.
4. ages 배열의 2번, 3번 인덱스를 26, 28로 변경해주세요.
5. numbers 배열에 1, 2, 3, 5, 8, 9를 순서대로 추가해주세요.
6. 반복문을 활용해서 numbers 배열의 요소들 중 홀수를 모두 삭제해주세요.
let fruits = ['레몬', '토마토', '딸기', '바나나'];
let ages = [20, 24, 25, 29, 30, 33];
let numbers = [];
// fruits 배열에 '토마토'를 삭제하고 그 자리에 '사과', '청포도' 를 추가해 주세요
fruits.splice(1, 1, '사과', '청포도');
// fruits 배열의 첫 번째 요소를 삭제해 주세요
fruits.splice(0, 1);
// ages 배열에 마지막 요소를 삭제해 주세요
ages.splice(ages.length-1);
// ages 배열의 2번, 3번 인덱스를 26, 28로 변경해 주세요
ages.splice(2, 2, 26, 28);
// numbers 배열에 1, 2, 3, 5, 8, 9를 순서대로 추가해 주세요
numbers.splice(0, 0, 1, 2, 3, 5, 8, 9);
// 반복문을 활용해서 numbers 배열의 요소들 중 홀수를 모두 삭제해 주세요
for(let i = numbers.length-1; i>=0; i--) {
if(numbers[i] % 2 !== 0) {
numbers.splice(i, 1);
}
}
// 테스트 코드
console.log(fruits[1]);
console.log(fruits[0]);
console.log(ages[ages.length - 1]);
console.log(ages[3]);
console.log(numbers[3]);
console.log(numbers);
실습 결과
청포도
사과
30
28
undefined
[ 2, 8 ]
shift()
- 배열의 첫 요소 삭제
let memebers = ['뽀로로', '루피', '에디', '포비', '크롱'];
console.log(members); // (5) ['뽀로로', '루피', '에디', '포비', '크롱']
members.shift(); // 배열의 첫 요소 삭제
console.log(members); // (4) ['루피', '에디', '포비', '크롱']
pop()
- 배열의 마지막 요소를 삭제
let memebers = ['루피', '에디', '포비', '크롱'];
console.log(members); // (4) ['루피', '에디', '포비', '크롱']
members.pop(); // 배열의 마지막 요소 삭제
console.log(members); // (3) ['루피', '에디', '포비']
unshift(value)
- 배열의 첫 요소로 값 추가
let members = ['루피', '에디', '포비'];
console.log(members); // (3) ['루피', '에디', '포비']
members.unshift('패티'); // 배열의 첫 요소로 '패티'값 추가
console.log(members); // (4) ['패티', '루피', '에디', '포비']
push(value)
- 배열의 마지막 요소로 값 추가
let members = ['패티', '루피', '에디', '포비'];
console.log(members); // (4) ['패티', '루피', '에디', '포비']
members.push('해리'); // 배열의 마지막 요소로 '해리'값 추가
console.log(members); // (5) ['패티', '루피', '에디', '포비', '해리']
indexOf(value)
- 배열에서 특정 값 찾기
- 포함되어 있다면, value가 있는 인덱스가 리턴
- 포함되어 있지 않으면, -1 리턴
- value값이 여러 번 포함되어 있으면, 처음 발견된 인덱스가 리턴
let brands = ['Google' , 'Kakao', 'Naver', 'Kakao'];
console.log(brands.indexOf('Kakao')); // 1
console.log(brands.indexOf('Daum')); // -1
lastIndexOf(value)
- 반대로 탐색으로 뒤에서부터 배열에서 특정 값 찾기
- 포함되어 있다면, value가 있는 인덱스가 리턴
- 포함되어 있지 않으면, -1 리턴
- value값이 여러 번 포함되어 있으면, 처음 발견된 인덱스가 리턴
let brands = ['Google', 'Kakao', 'Naver', 'Kakao'];
console.log(brands.lastIndexOf('Kakao')); // 3
console.log(brands.lastIndexOf('Daum')); // -1
includes
- 배열에서 특정 값이 있는지 확인하기
- value값이 있을 경우 true값 반환
- value값이 없는 경우 false값 반환
let brands = ['Google', 'Kakao', 'Naver', 'Kakao'];
console.log(brands.includes('Kakao')); // true
console.log(brands.includes('Daum')); // false
reverse
- 배열 뒤집기
let brands = ['Google', 'Kakao', 'Naver', 'Kakao'];
console.log(brands); // ['Google', 'Kakao', 'Naver', 'Kakao'];
brands.reverse(); // 배열 뒤집기
console.log(brands); // ['Kakao', 'Naver', 'Kakao', 'Google']
QUIZ1
다음 코드의 결과로 올바른 것을 고르시오.
let numbers = [1, 3, 5, 6, 8, 10];
numbers.pop(); // [1, 3, 5, 6, 8] -> 배열의 마지막 요소 삭제
numbers.unshift(3); // [3, 1, 3, 5, 6, 8] -> 배열의 첫 요소로 3 추가
numbers.shift(); // [1, 3, 5, 6, 8] -> 배열의 첫 요소 삭제
console.log(numbers); // [1, 3, 5, 6, 8]
QUIZ 2
다음 코드의 결과로 올바른 것을 고르시오.
function range(start, count, step) {
let arr = [];
for (let i=0; i<count; i++) {
arr.push(start + i * step)
}
return arr;
}
console.log(range(1, 10, 3)); // [1, 4, 7, 10, 13, 16, 19, 22, 25, 28]
/*
i=0 -> (1 + 0 * 3) = 1
i=1 -> (1 + 1 * 3) = 4
i=2 -> (1 + 2 * 3) = 7
i=3 -> (1 + 3 * 3) = 10
i=4 -> (1 + 4 * 3) = 13
i=5 -> (1 + 5 * 3) = 16
i=6 -> (1 + 6 * 3) = 19
i=7 -> (1 + 7 * 3) = 22
i=8 -> (1 + 8 * 3) = 25
i=9 -> (1 + 9 * 3) = 28
*/
'Codeit > JavaScript' 카테고리의 다른 글
| 다차원 배열 (0) | 2024.08.07 |
|---|---|
| for ... of 반복문 (0) | 2024.08.07 |
| 배열 다루기 (0) | 2024.08.06 |
| 배열 (1) | 2024.08.06 |
| Date 객체 (0) | 2024.08.06 |