2016-10-24 3 views
-1

Ich bin ein JSON-Array mit vielen Objekten, wie das Erstellen:Suche innerhalb JSON-Objekt

var JSON = []; 
var obj1 = { 
    "familyId": 5, 
    "implant": [{ 
     "reference": 12345678, 
     "quantity": 3, 
     "origin": "ours", 
     "lot": null 
     }] 
    } 
var obj2 = { 
    "familyId": 5, 
    "implant": [{ 
     "reference": 12345678, 
     "quantity": 2, 
     "origin": "theirs", 
     "lot": null 
     }] 
    } 
JSON.push(obj1); 
JSON.push(obj2); 

Wie ich dieses JSON-Array suchen (mit vielleicht find() oder indexOf()) die Menge der Referenz „12345678, um zu bestimmen "mit Ursprung" unser "?

+0

könnten Sie verwenden foreach ... https: // developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach –

Antwort

0

Sie könnten Array#find für das äußere Array und Array#some für das innere Array mit den Suchbedingungen verwenden.

var array = [{ "familyId": 5, "implant": [{ "reference": 12345678, "quantity": 3, "origin": "ours", "lot": null }] }, { "familyId": 5, "implant": [{ "reference": 12345678, "quantity": 2, "origin": "theirs", "lot": null }] }], 
 
    object = array.find(o => o.implant.some(a => a.reference === 12345678 && a.origin === 'ours')); 
 

 
console.log(object);

0

Sie können Schleife throgh JSON Array und Liste aus ihnen - Demo unter:

var JSON = []; 
 
var obj1 = { 
 
    "familyId": 5, 
 
    "implant": [{ 
 
     "reference": 12345678, 
 
     "quantity": 3, 
 
     "origin": "ours", 
 
     "lot": null 
 
     }] 
 
    } 
 
var obj2 = { 
 
    "familyId": 5, 
 
    "implant": [{ 
 
     "reference": 12345678, 
 
     "quantity": 2, 
 
     "origin": "theirs", 
 
     "lot": null 
 
     }] 
 
    } 
 
JSON.push(obj1); 
 
JSON.push(obj2); 
 

 
function search(reference, origin) { 
 
    var found = []; 
 
    JSON.forEach(function(element) { 
 
    element.implant.forEach(function(ele){ 
 
     if(ele.reference == reference && ele.origin == origin) { 
 
      this.push(element); 
 
     } 
 
    }, this); 
 
    
 
    }, found); 
 
    return found; 
 
} 
 

 
console.log(search(12345678, "ours"));
.as-console-wrapper{top:0;max-height:100% !important;}

Verwandte Themen