web-dev-qa-db-fra.com

Underscore: supprime toutes les paires clé/valeur d'un tableau d'objets

Existe-t-il un moyen "intelligent" de soulignement pour supprimer toutes les paires clé/valeur d'un tableau d'objets?

par exemple. J'ai tableau suivant:

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 },
    ];

et je veux obtenir ce qui suit:

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

Je peux obtenir ce travail avec le JS ci-dessous, mais pas vraiment satisfait de mes solutions:

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

Toutes les suggestions très appréciées.

30
Iladarsda

Vous pouvez utiliser map et omit en conjonction pour exclure des propriétés spécifiques, comme ceci:

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

Ou map et pick pour n'inclure que des propriétés spécifiques, comme ceci:

var newArr = _.map(arr, function(o) { return _.pick(o, 'q'); });
50
p.s.w.g

Pour omettre

_.map(arr, _.partial(_.omit, _, 'c'));

Pour le choix

_.map(arr, _.partial(_.pick, _, 'q'));
0
Sam