Hé les gars, j'ai un obj qui ressemble un peu à ça.

[
    {
        "app": 1,
        "scalable": true,
        "zoomable": true,
        "cropBoxResizable": true
    },
    {
        "app": 2,
        "scalable": false,
        "zoomable": true,
        "cropBoxResizable": false
    }
]

Ce que j'essaie de faire est d'extraire les données d'objets liées à une application spécifique et de les enregistrer dans un deuxième objet. Ainsi, par exemple, si app = 1, newObj sera quelque chose comme ça

var newObj = {
        "app": 1,
        "scalable": true,
        "zoomable": true,
        "cropBoxResizable": true
    }

Existe-t-il un moyen d'améliorer ce format json? Je suis ouvert à cela aussi. J'essaie juste de trouver la façon la plus optimisée d'aborder cela.

Je vous remercie.

0
BaconJuice 9 mars 2016 à 19:03

3 réponses

Meilleure réponse

Vous devez parcourir votre tableau et vérifier app l'égalité

var arr = [ { "app": 1, "scalable": true, "zoomable": true, "cropBoxResizable": true }, { "app": 2, "scalable": false, "zoomable": true, "cropBoxResizable": false } ]

function extract(a, app) {
    var length = a.length;
    for(var i = 0; i < length; i++){
        if (a[i].app === app) {
            return a[i];
        }
    }
}

var newObj = extract(arr, 2)
console.log(newObj);

Résultat:

{ app: 2,
  scalable: false,
  zoomable: true,
  cropBoxResizable: false }
2
isvforall 9 mars 2016 à 16:06

Si j'ai bien compris, il vaut mieux utiliser un objet comme conteneur au lieu d'un tableau.

const src = { "1": // this is app name
  {
    "scalable": true,
    "zoomable": true,
    "cropBoxResizable": true
  },
  "2":
  {
    "scalable": false,
    "zoomable": true,
    "cropBoxResizable": false
  }      
};

Alors juste const appData = src ['1'];

0
pma_ 9 mars 2016 à 16:17

Essayez ce code, c'est le moyen le plus simple

var source = [
    {
        "app": 1,
        "scalable": true,
        "zoomable": true,
        "cropBoxResizable": true
    },
    {
        "app": 2,
        "scalable": false,
        "zoomable": true,
        "cropBoxResizable": false
    }
];

for (var i = 0; i < source.length; i++) {
    if (source[i].app == "1") {
         console.log(source[i]);
    };
};
0
Shayan 9 mars 2016 à 16:06