object array
에 술어와 일치시켜 데이터를 필터링하려고합니다. 복잡성은 predicate
의 구성에 있으며이 경우에는 Map
데이터 구조를 사용하여 빌드 된 query
의 것과 유사합니다.술어 각도 2의 필터 배열
var data = [
{"id" : 1, "name": "bob", "address": "123 abc", "status": "active"},
{"id" : 2, "name": "henry", "address": "123 def", "status": "inactive"},
{"id" : 3, "name": "henry", "address": "123 hij", "status": "active"}
];
는`술어가 구축되어야 하는지를에서 Map
구조입니다 : 여기
처럼 내 개체의 array
는 모습입니다
var map = new Map<string, any>();
map.set("name", ["henry", "bob"]);
map.set("status", "active");
이 경우 올바른 출력해야 be :
[{"id" : 3, "name": "henry", "address": "123 hij", "status": "active"}]
이제 어떻게 작성해야합니까? 내 data.filter((item) => {...})
루틴을 사용하여 동적으로 predicate
을 구성하고 결과를 필터링합니다. 필터링 할 속성 중 하나 일 수 있으므로 property
이름을 하드 코드하고 싶지 않습니다.
둘째 값은 type any
이며, 이는 , array
또는 숫자 일 수 있음을 의미합니다. 술어이 비슷한으로 평가하고있다 : 나는 술어로 Map
객체를 평평하게하는 방법을 파악하고 필요를 필터링 할 수 없습니다
data.filter((item) =>
{ item["name"] IS IN map.get("name").values[]
&& item["status"] IS EQUAL TO map.get("status").value)});
. 모든 단서 또는 도움은 정말 도움이 될 것입니다.
제대로 작동하려고 할 때 'for of'를 사용할 수 없지만 'foreach'가 작동합니다. 그러나'foreach'에서 단락 회로가 생기지 않습니다 .. – faizanjehangir
'forEach' 대신에'for' 루프를 사용하지 않으시겠습니까? – Lee
'keys()와 .entries()'가 작동하고 map iterable을 반환하는'es5'와'map' 데이터 유형을 사용하고 있습니다. for 루프에서 반복 할 것을 어떻게 제안합니까? – faizanjehangir