0
votes

Filtrer la carte et la matrice de retour d'IDS

J'ai cette structure: xxx

J'ai besoin de quelque chose comme: xxx

qui devrait renvoyer un tableau: < Pré> XXX

Y a-t-il un moyen pratique de le faire? par exemple. Lodash, etc.


2 commentaires

Qu'est-ce qui ne fonctionne pas pour vous?


@Jeremythille Il est en quelque sorte. Ça s'appelle "utilisateurs". Et je n'essaie pas d'être une Smartass envers vous - il s'agit davantage d'appeler les utilisateurs comme étant aléatoire. Je n'ai vu aucun effort de questions ou de réponses que vous obtiendrez des upvotes dans les minutes qui sont affichées ou décentes se sont révélées dans les mêmes délais. Je soupçonne que certains utilisateurs de juste une masse descendent tout ce qu'ils trouvent avec une petite raison.


6 Réponses :


1
votes

Vous pouvez obtenir les entrées, filtrer l'âge et renvoyer les clés (qui sont évidemment des cordes).

p>

var entities = { 1: {'name': 'Fred', 'age': 35 }, 2: {'name': 'Hans', 'age': 47 }, 3: {'name': 'Bert', 'age': 27 } },
    result = Object
        .entries(entities)
        .filter(({ 1: { age } }) => age > 30)
        .map(([k]) => k);

console.log(result);


0 commentaires

5
votes

Vous pouvez utiliser l'objet .keys code> combiné avec array.pototype.filter code>

p>

var entities = {
  1: {'name': 'Fred', 'age': 35},
  2: {'name': 'Hans', 'age': 47},
  3: {'name': 'Bert', 'age': 27}
}
const result = Object.keys(entities).filter(key =>  entities[key].age > 30);
console.log(result);


0 commentaires

1
votes

Vous pouvez boucler sur des touches des entités code> et vérifier la condition d'âge pour une clé particulière dans les entités code> et filtrer.

var entities = {
  1: {'name': 'Fred', 'age': 35},
  2: {'name': 'Hans', 'age': 47},
  3: {'name': 'Bert', 'age': 27}
}

let op = Object.keys(entities).filter(e=> entities[e].age > 30)

console.log(op)


0 commentaires

2
votes

Filtre code> ne fonctionne que sur tableau code>, mais il y a quelque chose d'intéressant: votre objet ressemble à un tableau!

personnes qui utilisent JavaScript à utiliser pour dire: P >

S'il marche comme un canard et des charlaques comme un canard, il s'agit d'un canard p> BlockQuote>

À propos de ce contexte, quelque chose qui agit comme un tableau est juste un objet avec des chiffres comme clé plus em> a la propriété code>. Et regarder votre objet, vous manquez simplement la propriété de longueur! P>

Ajoutons la propriété code> de cette manière: p>

array
  .filter(p => p.age > 30)
  .map((obj, index) => index);


3 commentaires

Je n'ai jamais pensé à des objets comme ça. Néanmoins, dans mon cas, je ne suis pas sûr que cela fonctionnerait lorsque l'identifiant n'est pas séquentiel, disent qu'ils viennent de la base de données -> entités = {97: {...}, 114: {...}, 43 : {...}}.


@ Wolf359 Oui, c'est vrai. Vous ne devriez pas l'utiliser si l'index / ID a une certaine importance. Parce qu'il transformera l'objet dans une matrice et dans un tableau, l'index n'est utilisé que pour localiser l'élément et il ne sera pas stable.


Également dans mon exemple, l'index n'est pas les premiers, car j'utilise mappe après filtre !



0
votes

Utilisez _.map () et _.Keys () pour atteindre le code ci-dessous

var i= -1;
var keys=_.keys(entities);
var person= _.map(entities, function(p) {
    i++;
    if (p.age>30) return keys[i];
});


1 commentaires

J'ai besoin d'un tableau d'identifiants, pas de tableau d'objets



2
votes

Vous pouvez utiliser Lodash Réduire la méthode . Cela fonctionne pour les tableaux et les objets. Exemple: xxx


0 commentaires