2014-04-07 17 views
26

Czy istnieje "inteligentny" podkreślnik, aby usunąć wszystkie pary klucz/wartość z tablicy obiektów?Podkreślenie: usuń wszystkie pary klucz/wartość z tablicy obiektów.

np. Mam następujące tablicy:

var arr = [ 
     { q: "Lorem ipsum dolor sit.", c: false }, 
     { q: "Provident perferendis veniam similique!", c: false }, 
     { q: "Assumenda, commodi blanditiis deserunt?", c: true }, 
     { q: "Iusto, dolores ea iste.", c: false }, 
    ]; 

i chcę uzyskać następujące:

var newArr = [ 
     { q: "Lorem ipsum dolor sit." }, 
     { q: "Provident perferendis veniam similique!" }, 
     { q: "Assumenda, commodi blanditiis deserunt?" }, 
     { q: "Iusto, dolores ea iste." }, 
    ]; 

mogę dostać tę pracę z poniższej JS, ale nie bardzo zadowolony z moich rozwiązań:

for (var i = 0; i < arr.length; i++) { 
    delete arr[i].c; 
}; 

Wszelkie sugestie bardzo doceniane.

Odpowiedz

46

Można użyć map i omit w połączeniu wykluczyć specyficzne właściwości, na przykład:

var newArr = _.map(arr, function(o) { return _.omit(o, 'c'); }); 

Or map i pick do tylko obejmować szczególne właściwości, na przykład:

var newArr = _.map(arr, function(o) { return _.pick(o, 'q'); }); 
+0

mnie uprzedził ! @ Użytkownik789 Możesz także użyć _.pick, jeśli chcesz uzyskać efekt odwrotny: 'var newArr = _.map (arr, function (o) {return _.pick (o, 'q');));' – Pete

+3

@ User789 Ponadto, jeśli chcesz mieć tablicę, możesz również użyć metody pluck: 'var newArr = _.pluck (arr, 'q');' – Pete

+0

@mister_rampage Tak, to również dobra uwaga. –