배열 전체 순회
forEach()
- map(), for()과 비슷한 기능을 하며, 주어진 함수를 배열의 각 요소에 실행시킴
- map()과 다르게 forEach()는 배열을 리턴하지 않음
- undefined를 리턴
arr.forEach(() => {
//각 배열의 원소에 반복하고 싶은 코드
})
- 배열을 반환하고 싶다면 빈배열 안에 push 해서 넣어주어야 함
- ※ 새로운 배열이 필요할 때는 map을 사용 / 배열은 필요없지만 반복문을 사용할 때는 forEach 사용
- forEach는 배열을 순회하는 도중에 멈출 수 없지만, 배열을 순회하는 속도가 빠름
배열 탐색(원하는 요소 찾기)
indexOf()
- 배열에 특정 원소가 있는지 탐색하고 찾은 첫번째 요소의 인덱스를 반환
- 존재하지 않으면 -1을 반환
arr.indexOf("탐색하고싶은 요소", 탐색을 시작할 위치=인덱스)
- 탐색을 시작할 위치를 지정해주면 해당 인덱스를 포함해서 탐색을 시작
lastIndexOf()
- indexOf()와 다르게 배열에서 찾은 마지막 요소의 인덱스를 반환
- indexOf()와 같은 기능이지만 인덱스 반환만 뒤에서부터 해줌
- 이외에는 indexOf()와 동일
arr.lastIndexOf("탐색하고싶은 요소", 역순으로 탐색을 시작할 위치)
- lastIndexOf()에 탐색의 위치를 지정해주면 해당 인덱스를 기준으로 큰쪽으로 탐색을 진행하는게 아닌 작은쪽으로 탐색을 진행
includes()
- 배열이 특정 요소를 포함하고 있는지 판별
- 특정 요소를 포함하면 true를 반환
- 특정 요소를 포함하지 않으면 false를 반환
arr.includes("탐색하고싶은 요소", 탐색을 시작할 위치)
- includes의 탐색위치를 지정하면, 해당 인덱스를 포함해서 탐색을 시작
find()
- 주어진 판별함수를 만족하는 배열의 첫번째 요소의 값을 반환해주는 메서드
- 만족하는 요소가 없으면 undefined를 반환
arr.find(() => {
// 판별함수
})
- find() 안의 매개변수에는 arr의 모든 원소들이 들어감
findIndex()
- 주어진 판별함수를 만족하는 배열의 첫번째 요소의 인덱스를 반환해주는 메서드
- find()와 같은 기능이지만, 반환해주는 값이 다른것이 차이점
arr.findIndex(() => {
// 판별함수
}
- findIndex()는 find()와 다르게 값이 아닌 인덱스가 반환됨
filter()
- 주어진 함수를 만족하는 모든 요소를 모아 새로운 배열로 반환하는 메서드
- 일정한 기준에 부합하는 원소들만 추출하고 싶을 때 많이 사용
arr.filter(() => {
//일정한 기준을 줄 함수
})
- indexOf(), lastIndexOf(), includes(), find(), findIndex()는 위치를 알려주거나 최초의 값만 알려줌
- filter()는 함수에 부합하는 원소 모두를 새로운 배열로 반환
기타 메서드
some()
- 배열 안의 모든 원소중에 하나라도 판별함수를 만족하는지 테스트해주는 메서드
- 만족하는 원소가 있다면 true를 반환
- 만족하는 원소가 없다면 false를 반환
const 콜백함수 = (arr_item)=>{
// 판별하고싶은 것
}
arr.some(// 콜백함수)
- arr_item에는 arr의 모든 원소가 들어감
every()
- 배열 안의 모든 원소가 주어진 판별함수를 통과하는지 테스트
- Boolean을 반환
- some과 비슷하지만 모든 원소가 만족해야 한다는 것이 차이점
const 콜백함수 = (arr_item) => {
// 판별하고싶은 것
}
arr.every(// 콜백함수)
- arr_item에는 arr의 모든 원소가 들어감
fill()
- 배열의 시작 인덱스부터 끝 인덱스의 이전까지 하나의 값을 채워줌
arr.fill(채울원소, 시작인덱스, 끝인덱스)
- 끝 인덱스는 포함하지 않음
'Web Basic > JavaScript' 카테고리의 다른 글
ES6의 특징 (0) | 2022.04.18 |
---|---|
==, === 차이점 (0) | 2022.04.18 |
스코프, 스코프 체인 (0) | 2022.03.29 |
실행 컨텍스트와 호이스팅 (0) | 2022.03.28 |
Array의 필수 메서드 (1) (0) | 2022.03.21 |