[JSON] Convertir un objet contenant des tableaux en un seul tableau contenant des objets

 

json_logo-555px

Introduction
Un Problème peu commun, sur lequel je ne vois pas comment faire un MAP direct.

Le lien :
https://stackoverflow.com/questions/54000212/convert-one-object-containing-arrays-of-json-objects-to-one-array

I have this kind of JSON object :

{
group1:[{ id: 1, name: "larry" },{ id: 2, name: "philippe" }],
group2:[{ id: 3, name: "curly" }],
group3:[{ id: 4, name: "moe" }]
}

How can i convert it to a single array like this, using JS or ANGULARJS ? :

[
{ id: 1, name: "larry" },
{ id: 2, name: "philippe" },
{ id: 3, name: "curly" },
{ id: 4, name: "moe" }
]

EDIT 1 : Resolved Thanks a lot for your kind help, this is my final code :

        newArray = [];
        var e = myObject;
        for ( var k in e ) {
            for ( var i in e[k] ) {
                newArray.push(e[k][i]);
            }
        }
     
        return newArray;

EDIT 2: https://stackoverflow.com/users/5201343/harryparkdotio m’a donné un code mille fois plus simple arghhh :

newArray = [];
var e = myObject;
newArray = Object.values(e).flat();

return newArray;
Publicités

[PouchDb] Supprimer les méta data provenant de cloudant, après un .allDocs

pouch

Introduction


Une query AllDocs sur cloudant CouchDb nous rappatrie des métas data et des objets un peu mal formés, cela est génant pour lister un array d’objets habituel avec JS.

Comment faire ?

Faire un MAP sur le tableau d’objets JSON en JS

const getDocsFromViewResult = rawData => rawData.map(entry => entry.doc);

const data = [{
  id: 1,
  key: 1,
  doc: {
    _id: '1234',
    name: 'johnny'
  }
}];

console.log(getDocsFromViewResult(data));

Merci à Alexis Côté
https://stackoverflow.com/users/5236185/alexis-c%c3%b4t%c3%a9 pour la solution

[Cloudant CouchDb] un problème d’authentification réglé.

cloudant

Introduction


un pb d’authentification réglé sur CLOUDANT

Le lien :


https://stackoverflow.com/questions/53923315/unable-to-authenticate-a-user-on-cloudant-couchdb

[PouchDb][Cloudant] Gérer les droits utilisateurs (Post évolutif.).

monetablissement

cloudantpouch

Introduction


Les PME, de nos jours, sont intéressées par des applications multi utilisateurs .

Bien sur, il ne s’agit pas que de la présence du fameux ‘log in – password’ comme disent les anglophones, mais il faut aussi pouvoir gérer avec une granularité très fine les droits dans les petits recoins de l’application .

Ce post est évolutif, puisque je découvre en temps réel les fonctionnalités liés au login.

Pour l’instant, je n’active pas SSL (note : Les mots de passe des utilisateurs sont automatiquement haschés par cloudant, comme couchDb le fait aussi.).

Il faut ajouter le plug in pouchDb Authentication


Lire la suite

[Chart.js][Cloudant][Pouchdb] MonEtablissement : générer un graphe en barre en 15 min avec pour source le Map Reduce

monetablissement

charts

Introduction


Suite au post précédent, j’ai donc récupéré le nombre d’établissements français par régions, à l’aide d’un traitement MAP REDUCE.

Maintenant, ben, j’ai envie de visualiser cela dans un graphique en barre, très basique.

Comment faire ?


D’abord, j’ajoute la lib chart.js à mon fichier index.html  :

	<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.4.0/Chart.min.js"></script>

On la récupère directement en ligne, c’est très rapide et toujours un bon plan pour faire des maquettes d’applications rapides !

Ensuite, je suis la doc en ligne de chart.js,

J’ajoute une DIV dans mon application ou va se générer le chart  :

Lire la suite

[Pouchdb][Cloudant][Big data] MonEtablissement : Faire un premier Map Reduce en 10 minutes dans l’app

monetablissement.jpg

pouch                    cloudant

Introduction


On fait un premier map reduce qui a pour but simple d’afficher le nombre d’établissements par régions.

Tester l’application updatée ici :


http://nicolas.huleux.free.fr/pouchdb3/

Comment faire ?


Deux solutions, soit on crée la requête de création de Map Reduce avec JS, qui ensuite la crée dans Cloudant , soit on crée directement la requête sur cloudant .

Dans les deux cas, on va ensuite quérir la requête map reduce dans notre front end JS, avec l’api pouchDb.

Il faut également utiliser la lib suivante : pouchdb.find.js

Je choisis de créer ma requête Map Reduce directement dans l’interface Cloudant à cet endroit (Design Document/ Create view ) :

etab.jpg

Lire la suite

#liste

[Jquery Google Map][Cloudant][PouchDb] MonEtablissement : Ajouter des markers en 15 minutes sur la map

monetablissement.jpg

map.jpg

Introduction


Maintenant qu’on a notre petite App, on veut afficher la carte des établissements, et le faire en 15 minutes maximum avec https://github.com/Tilotiti/jQuery-Google-Map

Comment faire ?


Le fichier que l’on avait récupéré sur le site Français gouvernemental comportait longitude et latitude, du coup, on fait une boucle FOR qui génère les markers pour chaque établissement. Autrement dit on parcoure la collection à la recherche des long et lat pour chacun de nos documents (qui sont des établissements).

BON A SAVOIR : Google ne limite pas les markers si on utilise long et lat, par contre si on spécifie des adresses alors on heurte la limitation , donc , les adresses sont à éviter si on a 300 markers par exemple !

Tester l’app avec la carte


http://nicolas.huleux.free.fr/pouchdb3/

Le Code

Lire la suite