아래와 같이 두 개의 객체 배열이 있습니다.
var array1 = [{"id": "-1","OwnerID": 777,"Admin": "true"},{"id": "-1","OwnerID": 555,"Admin": "true"},{"id": "-1","OwnerID": 444,"Admin": "true"},{"id": "-1","OwnerID": 222,"Admin": "true"},{"id": "-1","OwnerID": 111,"Admin": "true"}];
var array2 = [{"id": 777, "OwnerName": "Blah", "OwnerType": "Test"},{"id": 555, "OwnerName": "Blah", "OwnerType": "Test"},{"id": 444, "OwnerName": "Blah", "OwnerType": "BusinessMan"},{"id": 222, "OwnerName": "Blah", "OwnerType": "BusinessMan"},{"id": 111, "OwnerName": "Blah", "OwnerType": "BusinessMan"},{"id": 234, "OwnerName": "Blah", "OwnerType": "BusinessMan"},{"id": 432, "OwnerName": "Blah", "OwnerType": "Test"},{"id": 112, "OwnerName": "Blah", "OwnerType": "BusinessMan"},{"id": 114, "OwnerName": "Blah", "OwnerType": "Test"}]
array2의 OwnerType이 Test 인 array1의 필터링 된 배열을 가져와야합니다. array1의 OwnerID는 배열 2의 id에 연결되어 있습니다. 가능한 한 적은 줄로이 작업을 수행하려고합니다. 이상적으로는 첫 번째 배열에 해당 유형 중 하나만 있어야하므로 배열 길이가 1보다 큰지 주로 확인하고 싶습니다. 도움을 주시면 감사하겠습니다.
편집하다:
원하는 출력은 다음과 같은 array1이어야합니다.
[{"id": "-1","OwnerID": 777,"Admin": "true"},{"id": "-1","OwnerID": 555,"Admin": "true"}]
내가 사용한 대답
array1.filter(ar1 => array2.filter(ar2 => ar2.OwnerType == 'Test' && ar2.id == ar1.OwnerID).length > 0).length > 1
도움을 주신 모든 분들께 감사드립니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다