2016-11-18 2 views
0

Ich habe diese Funktion, die einen json Parameter enthält, der ein Array von Suchobjekten enthält.Extrahieren von Eigenschaften aus Array

function receiveSearch(search, json) { 
    return { 
     type: RECEIVE_SCHOOL_SEARCH, 
     items: json.packages, 
     receivedAt: Date.now(), 
     search: Object.assign({}, search, { next: json.next, start: search.next }), 
    }; 
} 

Meine json Eigenschaft wie folgt aussieht:

>0:Object 
>1:Object 
>2:Object 
>3:Object 
...{ more } 

ich von json d.h name und suburb zum search Objekt zwei Eigenschaften zurückkehren möchte. Wie mache ich das? Ich würde es vorziehen, etwas Ordentliches wie Lodash/Ramda/Unterstrich zu verwenden, aber plain js ist in Ordnung.

Und jedes Objekt enthält die folgenden Eigenschaften:

id:"10360" 
centreId:776 
name:"ABBOTSFORD" 
suburb:"TARNEIT" 
+0

Was haben Sie versucht? – nicovank

Antwort

0

Die einfachste Lösung für Sie Problem mit JavaScript ein neues Objekt machen könnte, die nur erforderliche Eigenschaft enthält und zurück.

einfach davon ausgehen, Ihre json sieht wie folgt aus:

var x = {search:{id:"10360",centreId:776,name:"ABBOTSFORD",suburb:"TARNEIT"},otherProp:val} 

Um erforderlichen Eigenschaften zu erhalten, können Sie eine andere Funktion machen und das Objekt mit den erforderlichen Feldern zurück:

function ReturnRequiredPropertyObject(anyObj) 
{ 
    var newObj = {}; 
    newObj.search = {}; 
    newObj.search.name = anyObj.search.name; 
    newObj.search.suburb = anyObj.search.suburb; 
    return newObj; 
} 

Sie den obigen Code setzen können in Schleife, wenn Sie ein Array von Suchobjekten erhalten.

Um den obigen Code generic machen wir folgendes tun:

function ReturnRequiredPropertyObject(anyObj,requiredPropertyArray) 
{ 
    var newObj = {}; 
    for(var counter = 0;counter<requiredPropertyArray.length;counter++) 
    { 
     newObj[requiredPropertyArray[counter]] = anyObj[requiredPropertyArray[counter]]; 

    } 
    return newObj; 
} 

Hope this helfen.

0

Ok aufgelöst.

Antwort is

_.map(json,_.partialRight(_.pick,['name','suburb'])); 
Verwandte Themen