⭐ Array.shift()
shift()
메서드는 배열에서 0 번째 요소를 제거하고 나머지 값들의 위치를 한칸 씩 앞으로 당겨 제거된 값을 반환한다.
let myFish = ['angel', 'clown', 'mandarin', 'surgeon'];
let shifted = myFish.shift();
console.log('myFish after: ' + myFish);
// "제거후 myFish 배열: clown,mandarin,surgeon"
console.log('Removed this element: ' + shifted);
// "제거된 배열 요소: angel"
⭐ Array.slice()
slice()
메서드는 어떤 배열의 시작부터 끝까지에 대한 얕은 복사본을 새로운 배열 객체로 반환한다. (원본배열은 바뀌지 않는다.)
arr.slice([begin[,end]])
begin
: 0을 시작으로하는 시적점에 대한 인덱스 (음수일경우 배열의 끝에서부터의 길이를 나타낸다.)
end
: 추출을 종료할 기준의 인덱스로end
인덱스를 제외하고 추출한다. (음수일경우 배열의 끝에서부터의 길이를 나타낸다.)
let fruits = ['Banana', 'Orange', 'Lemon', 'Apple', 'Mango']
let citrus = fruits.slice(1, 3)
// fruits contains ['Banana', 'Orange', 'Lemon', 'Apple', 'Mango']
// citrus contains ['Orange','Lemon']
⭐ Array.splice()
splice()
메서드는 배열의 기존 요소를 삭제 또는 교체하거나 새 요소를 추가하여 배열의 내용을 변경한다.
arr.splice(start[, deleteCount[, item1[,item2[, ...]]]])
start
: 배열의 변경을 시작할 인덱스 (음수일경우 배열의 끝에서부터 요소를세어나간다.)
deleteCount
: 배열에서 제거할 요소의 수
item1, item2, ...
: 배열에 추가할 요소 (생략할경우 요소를 제거하기만 한다.)
let myFish = ['angel', 'clown', 'drum', 'mandarin', 'sturgeon'];
let removed = myFish.splice(3, 1);
// removed is ["mandarin"]
// myFish is ["angel", "clown", "drum", "sturgeon"]
let myFish = ['angel', 'clown', 'drum', 'sturgeon'];
let removed = myFish.splice(2, 1, 'trumpet');
// removed is ["drum"]
// myFish is ["angel", "clown", "trumpet", "sturgeon"]
⭐ Array.filter()
filter
메서드는 주어진 함수의 테스트를 통과하는 모든 요소를 모아 새로운 배열로 반환한다.
arr.filter(callback(element[, index[, array]])[, thisArg])
callback
: 각 요소를 시험할 함수로 3개의 매개변수를 받는다
element
: 처리할 현재 요소
index
: 처리할 현재 요소의 인덱스
array
:filter
를 호출한 배열
thisArg
:callback
을 실행할 때this
로 사용하는 값
function isBigEnough(value) {
return value >= 10;
}
const filtered = [12, 5, 8, 130, 44].filter(isBigEnough);
// filtered 는 [12, 130, 44]
const fruits = ['apple', 'banana', 'grapes', 'mango', 'orange'];
//검색 조건에 따른 배열 필터링(쿼리)
const filterItems = (query) => {
return fruits.filter((el) =>
el.toLowerCase().indexOf(query.toLowerCase()) > -1
);
}
console.log(filterItems('ap')); // ['apple', 'grapes']
console.log(filterItems('an')); // ['banana', 'mango', 'orange']