将string中的函数参数转换为对象中的参数

我正在使用node.js

我有一个可以这样调用的函数;

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

我有这样的一个string;

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

我试图做这样的事情,以保持我的代码简单;

 add_row(str_param); 

它不起作用。 什么是使用str_param调用add_row的好方法?

您可以将string转换为该函数接受的对象。

 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

我认为这可能是你的问题:

 {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 

我不使用节点JS,只是在黑暗中拍摄。 如果没有,你可以只是做function如:

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

如果这不起作用尝试使用对象string,看看函数ParseJSON我相信这是所谓的。