2016-06-02 8 views
0

So erhalten Sie bestimmte Eigenschaften aus dem Array b. Diese zu filternden Eigenschaften befinden sich in Array a.Unterstreichen, um ein Array-Objekt mit einem anderen Array zu filtern

Gibt es eine einfachere Möglichkeit, Unterstreichung zu verwenden.

var a = [{ 
    name: "code" 
}, { 
    name: "barcode" 
}, { 
    name: "status", 
    type: "button" 
}]; 

var b = [{ 
    id: 1, 
    code: 10, 
    barcode: "121212", 
    status: "success", 
    amount: "10", 
    available: true 
}, { 
    id: 1, 
    code: 10, 
    barcode: "121212", 
    status: "success", 
    amount: "10", 
    available: true 
}]; 

Wenn nun mit unterstreichen, wie kann ich unten Ergebnis bekommen

var c = [{ 
    code: 10, 
    barcode: "121212", 
    status: "success" 
}, { 
    code: 10, 
    barcode: "121212", 
    status: "success" 
}]; 

Antwort

1
(function(property, x, y) { 
    var filters = _.pluck(x, property); 
    var filter = function(obj) { 
    return _.pick(obj, filters); 
    }; 
    return _.map(y, filter); 
})('name', a, b); 
1
var filters = _.pluck(a, 'name'); 

var c = _.map(b, function(el) { 
    return _.pick(el, filters); 
}); 
Verwandte Themen