반응형
Lodash : 중첩 된 개체가있을 때 필터를 어떻게 사용합니까?
이 예를 고려하십시오. Lodash를 사용 하고 있습니다
'data': [
{
'category': {
'uri': '/categories/0b092e7c-4d2c-4eba-8c4e-80937c9e483d',
'parent': 'Food',
'name': 'Costco'
},
'amount': '15.0',
'debit': true
},
{
'category': {
'uri': '/categories/d6c10cd2-e285-4829-ad8d-c1dc1fdeea2e',
'parent': 'Food',
'name': 'India Bazaar'
},
'amount': '10.0',
'debit': true
},
{
'category': {
'uri': '/categories/d6c10cd2-e285-4829-ad8d-c1dc1fdeea2e',
'parent': 'Food',
'name': 'Sprouts'
},
'amount': '11.1',
'debit': true
},
내가 할 때
_.filter(summary.data, {'debit': true})
나는 모든 물건을 되 찾는다.
내가 원하는 게 뭐야?
나는 모든 객체를 원합니다 category.parent == 'Food'
. 어떻게 할 수 있습니까?
나는 시도했다
_.filter(summary.data, {'category.parent': 'Food'})
그리고 얻었다
[]
_.filter(summary.data, function(item){
return item.category.parent === 'Food';
});
lodash는 중첩 된 객체 정의를 허용합니다.
_.filter(summary.data, {category: {parent: 'Food'}});
v3.7.0부터 lodash는 문자열에 객체 키를 지정할 수도 있습니다.
_.filter(summary.data, ['category.parent', 'Food']);
JSFiddle의 예제 코드 : https://jsfiddle.net/6qLze9ub/
lodash는 배열을 사용한 중첩도 지원합니다. 배열 항목 중 하나를 필터링하려는 경우 (예 : category가 배열 인 경우) :
_.filter(summary.data, {category: [{parent: 'Food'}] });
사용자 지정 비교가 정말 필요한 경우 함수를 전달해야합니다.
_.filter(summary.data, function(item) {
return _.includes(otherArray, item.category.parent);
});
다음과 같이 v3.7.0
할 수 있습니다.
_.filter(summary.data, 'category.parent', 'Food')
_.where(summary.data, {category: {parent: 'Food'}});
트릭도해야합니다
lodash 4.x에서는 다음을 수행해야합니다.
_.filter(summary.data, ['category.parent', 'Food'])
(두 번째 인수를 감싸는 배열에 유의하십시오).
이것은 다음을 호출하는 것과 같습니다.
_.filter(summary.data, _.matchesProperty('category.parent', 'Food'))
Here are the docs for _.matchesProperty
:
// The `_.matchesProperty` iteratee shorthand.
_.filter(users, ['active', false]);
// => objects for ['fred']
참고URL : https://stackoverflow.com/questions/17096988/lodash-how-do-i-use-filter-when-i-have-nested-object
반응형
'program tip' 카테고리의 다른 글
부호없는 정수와 부호있는 정수의 성능 (0) | 2020.11.16 |
---|---|
이미지 크기 (drawable-hdpi / ldpi / mdpi / xhdpi) (0) | 2020.11.16 |
Android 애플리케이션 내에서 SQLite 쿼리를 수행하는 방법은 무엇입니까? (0) | 2020.11.16 |
KeyDown 이벤트에 응답하지 않는 양식 (0) | 2020.11.16 |
C #에서 람다 변수의 범위는 무엇입니까? (0) | 2020.11.16 |