본문 바로가기

JavaScript/Lodash

[Lodash] _.filter() 함수 설명 및 사용 예제/예시

반응형

구문(Syntax)

_.filter(collection, predicate)
컬렉션(collection)의 요소를 반복하면서, 술어(predicate)에 대해 모든 요소가 참을 반환하는 새로운 배열을 반환합니다. 술어는 (값, 인덱스|키, 컬렉션)의 세 가지 인수로 호출됩니다.
참고: _.remove와 달리 이 메서드는 새 배열을 반환합니다.

Iterates over elements of collection, returning an array of all elements predicate returns truthy for. The predicate is invoked with three arguments: (value, index|key, collection).
Note: Unlike _.remove, this method returns a new array.

매개변수(Arguments)

- collection (Array|Object): 반복할 컬렉션입니다.
- [predicate=_.identity] (Function): 반복마다 호출되는 함수입니다. (직접 함수를 작성하거나, 다른 lodash 함수의 축약형을 이용할 수 있습니다)

- collection (Array|Object): The collection to iterate over.
- [predicate=_.identity] (Function): The function invoked per iteration.

반환 값(Returns)

(Array): 필터링된 새 배열을 반환합니다.

(Array) : Returns the new filtered array.

 

예제(Example)

var users = [
  { 'user': 'barney', 'age': 36, 'active': true },
  { 'user': 'fred',   'age': 40, 'active': false }
];

 

예제 1) 두 번째 인자로 원하는 함수를 직접 작성할 수 있습니다. 

_.filter(users, function(o) { return !o.active; });
// users 배열의 객체를 순회하면서 active가 false인 요소들만 포함한 새로운 배열을 리턴합니다.
// 반환값: [{ 'user': 'fred',   'age': 40, 'active': false }]

예제 2) 두 번째 인자로 `_.matches` 함수의 축약형을 함수 대신 이용할 수  있습니다.

_.filter(users, { 'age': 36, 'active': true });
// users 배열의 객체를 순회하면서 age가 36이고 active가 true인 요소들만 포함한 새로운 배열을 리턴합니다.
// 반환값: [{ 'user': 'barney', 'age': 36, 'active': true }]

예제 3) 두 번째 인자로 `_.matchesProperty` 함수의 축약형을 함수 대신 이용할 수  있습니다.

_.filter(users, ['active', false]);
// users 배열의 객체를 순회하면서 active가 false인 요소들만 포함한 새로운 배열을 리턴합니다.
// 반환값: [{ 'user': 'fred',   'age': 40, 'active': false }]

예제 4) 두 번째 인자로 `_.property` 함수의 축약형을 함수 대신 이용할 수  있습니다.

_.filter(users, 'active');
// users 배열의 객체를 순회하면서 active가 true인 요소들만 포함한 새로운 배열을 리턴합니다.
// 반환값: [{ 'user': 'barney', 'age': 36, 'active': true }]

 

 

Reference

 

 

반응형