2016-05-04 41 views
1
konvertieren

Ich verwende node.js.Funktionsparameter in Zeichenfolge in Parameter in Objekt

Ich habe eine Funktion, die auf diese Weise aufgerufen werden kann;

add_row({location:'L1', row_name:'r1', value:'18.4'}); 

Ich habe eine Zeichenfolge wie diese;

var str_param = "location:'L1', row_name:'r1', value:'18.4'"; 

Ich habe versucht, etwas zu tun, um meinen Code einfach zu halten;

add_row(str_param); 

Es hat nicht funktioniert. Was ist ein guter Weg, str_param zu verwenden, um add_row zu rufen?

Antwort

2

Sie könnten die Zeichenfolge in ein Objekt konvertieren, das von der Funktion akzeptiert wird.

function toObj(str) { 
    const a = str.split(/,.?/g); 
    return a.reduce((p, c) => { 
    const kv = c.replace(/'/g, '').split(':'); 
    p[kv[0]] = kv[1]; 
    return p; 
    }, {}); 
} 

toObj(str); // { location: "L1", row_name: "r1", value: "18.4" } 

DEMO

+1

zu arbeiten getestet. Du bist ein Genie! –

0

ich denke, das Ihr Problem sein kann:

{location:'L1', row_name:'r1', value:'18.4'} // Object 
var str_param = "location:'L1', row_name:'r1', value:'18.4'"; // Not object 

var str_param = "{location:'L1', row_name:'r1', value:'18.4'}"; // Object String 

Ich benutze Knoten JS nicht, aber nur einen Schuss in der Dunkelheit nehmen. Wenn nicht kann man nur Funktion machen wie:

function addRow(pLocation, pRowName, pValue) { 
    var row = { 
     location: pLocation, 
     row_name: pRowName, 
     value: pValue 
    } 

    // Logic .... 
} 

Wenn das nicht versuchen, funktioniert Objekt Zeichenfolge mit und Funktion ParseJSON aussehen ich glaube, es heißt.

Verwandte Themen