- slice() 메서드는 배열 내의 특정한 요소의 Index 범위에 따라 새로운 배열을 리턴한다.
- splice() 메서드와는 다르게 slice 메서드는 원본 배열을 변형시키지 않는다.
- 그렇기 때문에 이 메서드를 사용할 때는 slice() 메서드를 적용한 새로운 변수를 선언해주어야 한다.
- 위의 그림에서는 인자 2개가 들어갔지만, slice() 메서드는 필요에 따라 인자를 최소 1개만 쓸 수도 있다.
- 첫 번째 인자: 배열의 Index의 시작점
- 두 번째 인자: 배열의 Index의 끝점
let nums = [1, 2, 3, 4, 5];
let nums_new = nums.slice(1, 4);
console.log(nums);
console.log(nums_new);
- 첫 번째 인자에 음수가 들어가는 경우도 있다.
- 음수가 들어갈 경우 끝에서부터 해당하는 숫자만큼의 요소를 배열에 담아 리턴하게 된다.
let nums = [1, 2, 3, 4, 5];
let nums_new = nums.slice(-2);
console.log(nums);
console.log(nums_new);
- splice() 메서드는 배열 내의 특정한 요소를 삭제하거나, 다른 요소로 대체하거나 새로운 요소를 추가할 때 사용한다.
- slice() 메서드와는 다르게 splice() 메서드는 원본 배열을 변형시킨다.
- splice() 메서드를 쓸 때는 인자의 순서에 주의해야 한다.
- 첫 번째 인자: 배열의 Index의 시작점
- 두 번째 인자: 삭제할 요소의 개수
- 세 번째 인자 이후: 삭제한 요소 대신 대체하고 싶은 요소
let nums = [1, 2, 3, 4, 5];
nums.splice(2, 1, 10);
console.log(nums);
- concat() 메서드는 주어진 배열에 기존 배열을 합쳐서 새로운 배열을 반환한다.
- 원본 배열은 변하지 않으며, 새로운 배열이나 원본 배열을 수정해도 서로 영향을 받지 않는다.
let alphabet = ['a', 'b', 'c'];
let hangeul = ['ㄱ', 'ㄴ', 'ㄷ'];
alphabet.concat(hangeul);
const alpha = ['a', 'b', 'c'];
const arr = [1, [2, 3]];
alpha.concat(arr);
alpha.concat(1, [2, 3]);
- filter() 메서드는 array 관련 메서드로 조건에 맞는 요소들만 모아서 새로운 배열을 반환한다.
- 만약 조건에 부합되는 요소가 아무것도 없다면 빈 배열을 반환한다.
- filter() 메서드는 크게 filter(callbackFunction, thisAgr) 2개의 인자를 가진다. 그리고 callbackFunction 안에서 3개의 인자(element, index, array)를 가지는데 첫 번째 부분인 element 인자만 필수로 지정되어야 하고 나머지는 선택적이다.
let numbers = [10, 4, 32, 17, 5, 2];
let result = numbers.filter((value) => value > 10);
console.log(result);
function isBiggerThanTen(value) {
return value > 10;
}
let result = numbers.filter(isBiggerThanTen);
console.log(result);
let fruits = ['apple', 'banana', 'grapes', 'mango', 'orange'];
function filtered() {
return fruits.filter((value) => value.includes('ap'))
}
console.log(filtered());
let courses = [
{level:'easy', subject: 'English'},
{level:'hard', subject: 'Mathmatic'},
{level:'medium', subject: 'Literature'},
{level:'hard', subject: 'Science'},
{level:'medium', subject: 'Socialogy'}
];
function filtered() {
return courses.filter((value) => value['level'] === 'hard')
}
console.log(filtered());
- sort() 메서드는 배열 안의 원소들을 오름차순으로 정렬한다.
- reverse() 메서드는 배열의 순서를 뒤집는다.
let arr1 = [6, 4, 3, 2, 0];
arr1.sort();
console.log(arr1);
let arr2 = [0, 2, 3, 4, 6];
arr2.reverse();
console.log(arr2);
- indexOf() 메서드는 배열 안에서 찾으려는 값과 정확하게 일치(===)하는 첫 번째 요소의 Index를 리턴한다.
- 만약, 찾으려는 값이 배열에 없으면 -1을 리턴한다.
- 배열 안에서 찾으려는 값과 일치하는 마지막 요소의 Index를 리턴하려면, indexOf() 대신 lastIndexOf() 메서드를 사용해야 한다.
let arr3 = [1, 2, 3, 1, 2, 3];
console.log(arr3.indexOf(2));
console.log(arr3.lastIndexOf(2));