배열함수(forEach, map, filter, some, every, find, findIndex)
본문 바로가기
항해 중/2주차 알고리즘(프로그래머스)

배열함수(forEach, map, filter, some, every, find, findIndex)

by 은돌1113 2021. 11. 8.

배열 함수 리스트

- forEach : 반환값이 없다, 단순 for문과 같이 작동한다.

- map : 반환값을 배열에 담아 반환한다.

- filter: 조건에 충족하는(true) 아이템만 배열에 담아 반환한다.

- some: 조건에 충족하는 아이템이 하나라도 있으면 true 반환, 아니면 flase.

- every: 모든 배열에 아이템이 조건을 충족하면 true 반환, 아니면 false.

- find : 조건에 충족하는 아이템 하나만 반환(여러개라면 첫번째것만 반환)

- findIndex : 조건에 충족하는 아이템의 인덱스값 반환 (여러개라면 첫번째 아이템의 인덱스번호만 반환)

 

모든 배열 함수가 함수를 매개변수로 받는다.

 

let names = [
  "Steven Paul Jobs",
  "Bill Gates",
  "Mark Elliot Zuckerberg",
  "Elon Musk",
  "Jeff Bezos",
  "Warren Edward Buffett",
  "Larry Page",
  "Larry Ellison",
  "Tim Cook",
  "Lloyd Blankfein",
];

-> 배열 함수의 공통되는 배열 값

 

1. forEach()

: forEach() 함수는 매개변수로 함수를 받는다.

1) 함수를 따로 생성해서 함수를 매개변수로 넣어준다.
function printName(item){
  console.log(item)
}

names.forEach(printName)

2) 매개변수로 익명 함수를 넣어준다.
names.forEach(function(item){
  console.log(item)
  })
  
3) 매개변수로 화살표 함수를 넣어준다. (es6 문법
// index는 생략 가능하다.
// 매개변수에 들어가는 함수는 배열함수가 호출 될 때만 생겼다가 다시 사라질 일시적인 함수이다.
names.forEach((item, index)=>{console.log(item, index)})

2. map()

: forEach와의 차이점은 forEach()는 반환값이 없지만 map()은 반환값이 존재하고 반드시 배열을 반환한다.

반환값이 있기 때문에 map()은 반드시 return 키워드를 사용 해줘야 한다.

let data = names.map((item)=>{
  return item
  })
console.log(data)

3. filter() -> 거르다, 필터링 하다

: 조건에 충족하는(true) 아이템만 배열에 담아 반환한다.

let data = names.filter((item)=>{
  return item.startsWith("L")
  // .startWith은 item에 값에서 첫번째 글자가 "L"로 시작하는 것만 배열에 담아서 반환한다.
  })
console.log(data)

4. some() -> 몇몇..

: 조건에 충족하는 아이템이 하나라도 있다면 true, 없다면 false를 반환한다.

let data = names.some((item)=>{
  return item.startsWith("L")
  // .startWith은 item에 값에서 첫번째 글자가 "L"로 시작하는 것만 반환한다.
  })
console.log(data)

let data = names.some((item)=>{
  return item.startsWith("A")
  // .startWith은 item에 값에서 첫번째 글자가 "L"로 시작하는 것만 반환한다.
  })
console.log(data)

 

5. every() -> 모두

: 모든 배열에 아이템이 조건을 충족하면 true을 반환하고 충족하지 않으면 false를 반환한다.

let data = names.every((item)=>{
  return item.startsWith("L")
  // .startWith은 item에 값에서 첫번째 글자가 "L"로 시작하는 것만 반환한다.
  })
console.log(data)

let data = names.every((item)=>{
  return item.length > 0  
})
console.log(data)

6. find() -> 찾다

: 조건에 충족하는 아이템 하나만 반환(여러개라면 첫번째 것만 반환)

filter와의 차이점은 filter는 조건에 속하는 결과를 모두 배열에 담아서 반환하고 find는 조건에 속하는 첫번째 결과만 string 타입으로 반환한다.

let data = names.find((item)=>{
  return item.startsWith("L")
  })
console.log(data)

7. findIndex()

: 조건에 충족하는 아이템의 인덱스값을 반환한다. (여러개라면 첫번째 아이템의 인덱스 번호만 반환한다.)

let data = names.findIndex((item)=>{
  return item.startsWith("L")
  })
console.log(data)

 

(연습 문제 링크)

https://hackmd.io/@oW_dDxdsRoSpl0M64Tfg2g/rJc83gTrY

 

배열함수 - HackMD

# 배열함수 ![](https://blog.trello.com/hubfs/Google%20Drive%20Integration/How%20To%20Welcome%20And%20On

hackmd.io

 

(출처)

https://www.youtube.com/watch?v=kLYdgg0ljTk&list=PLCv2t5uA5ieBzDj1bgWUPtOJejj2VR9n1&index=17 

 

댓글