0
votes

Après aplatissement de la matrice à l'aide de Lodash, comment choisir uniquement des objets

J'ai aplati ce tableau en utilisant lodash strong> _.flatten et utilisé un réducteur pour sélectionner le type d'objet. Toute meilleure méthode pour cela utilisant Lodash.

 [{ "name" : "sam", "age": "20"}, { "name" : "andey", "age" : "26"}, { "name" : "jon", "age" : "24"}]


1 commentaires

Que voulez-vous dire par tirant les objets? En utilisant l'index ou simplement d'obtenir un aléatoire?


4 Réponses :


2
votes

Vous pouvez utiliser _. Filtre code> et _. ISObject code> méthodes pour renvoyer une matrice d'objets uniquement.

avec _. Méthode de chaîne code> const res = _..chain (données) .flatten (). Filtre (_. ISObject) .Value () Code> p>

p>

<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.10/lodash.js"></script>


0 commentaires

1
votes

Utilisez simple ES6 Syntex

Diminuer votre format de paquet: -) P>

p>

const sampleData = [ ["x", { "name" : "sam", "age": "20"}], ["y", { "name" : "andey", "age" : "26"}] , ["z", { "name" : "jon", "age" : "24"}]];

const flattenedArray = [].concat(...sampleData).filter(e=>typeof(e)==='object');  
console.log(flattenedArray)


0 commentaires

0
votes

Alternativement, vous pouvez itérer chaque tableau et ajouter l'objet dans un accumulateur de matrice.

p>

let sampleData = [ ["x", { "name" : "sam", "age": "20"}], ["y", { "name" : "andey", "age" : "26"}] , ["z", { "name" : "jon", "age" : "24"}]],
    result = sampleData.reduce((r, a) => {
      a.forEach(o => o === Object(o) && r.push({...o}));
      return r;
    },[]);
console.log(result);


0 commentaires

0
votes

Utilisez _. platmap () code> a aplatiré les articles avec _. Dernier () code> comme l'itération :

p>

<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.10/lodash.js"></script>


0 commentaires