2016-10-19 2 views
0

나는이 다음 키 배열이 있습니다필터 키 배열 [역]와 배열을 객체

var keys = [{userId: "333"}, {userId: "334"}] 

을 그리고 이것은 객체 배열 : 나는 변경해야

var users = [ 
{id: "333", firstName: "", lastName: "", idCard: "", birthDate: ""}, 
{id: "334", firstName: "", lastName: "", idCard: "", birthDate: ""}, 
{id: "335", firstName: "", lastName: "", idCard: "", birthDate: ""}, 
{id: "336", firstName: "", lastName: "", idCard: "", birthDate: ""} 
] 

users Arraykeys Array와 필터 그것은에 의해 [역 결과].

알아 낸 모든 대답을 얻으세요. (js, jquery, angular)

누구나?

답변

1

filter()find()을 사용할 수 있습니다.

var users = [ 
 
{id: "333", firstName: "", lastName: "", idCard: "", birthDate: ""}, 
 
{id: "334", firstName: "", lastName: "", idCard: "", birthDate: ""}, 
 
{id: "335", firstName: "", lastName: "", idCard: "", birthDate: ""}, 
 
{id: "336", firstName: "", lastName: "", idCard: "", birthDate: ""} 
 
] 
 
var keys = [{userId: "333"}, {userId: "334"}] 
 

 
var result = users.filter(function(o) { 
 
    return !keys.find(function(e) { 
 
    return e.userId == o.id 
 
    }) 
 
}) 
 

 
console.log(result)

1

당신은 id의 배열을 가질 수 있고 당신은 당신이 해시를 사용할 수

var users = [ 
 
{id: "333", firstName: "", lastName: "", idCard: "", birthDate: ""}, 
 
{id: "334", firstName: "", lastName: "", idCard: "", birthDate: ""}, 
 
{id: "335", firstName: "", lastName: "", idCard: "", birthDate: ""}, 
 
{id: "336", firstName: "", lastName: "", idCard: "", birthDate: ""} 
 
] 
 

 
var keys = [{userId: "333"}, {userId: "334"}] 
 

 
var idList = keys.map(function(x){ return x.userId}); 
 
var r = users.filter(function(x){ 
 
    return idList.indexOf(x.id) < 0 
 
}) 
 

 
console.log(r)

+0

미안하지만 난 반대 결과가 필요합니다. –

+0

@ZeevKatz 그래서 그것은 언급 된 목록을 제외하고 모두 있어야합니다. 권리? 그렇다면 업데이트를 확인하십시오. – Rajesh

1

이 목록에 가용성을 확인하실 수 있습니다 필터링을위한 테이블.

var keys = [{ userId: "333" }, { userId: "334" }], 
 
    users = [{ id: "333", firstName: "", lastName: "", idCard: "", birthDate: "" }, { id: "334", firstName: "", lastName: "", idCard: "", birthDate: "" }, { id: "335", firstName: "", lastName: "", idCard: "", birthDate: "" }, { id: "336", firstName: "", lastName: "", idCard: "", birthDate: "" }], 
 
    filtered = users.filter(function (a) { 
 
     return !this[a.id]; 
 
    }, keys.reduce(function (r, a) { 
 
     r[a.userId] = true; 
 
     return r; 
 
    }, Object.create(null))); 
 

 
console.log(filtered);
.as-console-wrapper { max-height: 100% !important; top: 0; }