Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将字符串中的函数参数转换为对象中的参数_Javascript_Node.js_Function Parameter - Fatal编程技术网

Javascript 将字符串中的函数参数转换为对象中的参数

Javascript 将字符串中的函数参数转换为对象中的参数,javascript,node.js,function-parameter,Javascript,Node.js,Function Parameter,我正在使用node.js 我有一个可以这样调用的函数 add_row({location:'L1', row_name:'r1', value:'18.4'}); 我有一根这样的绳子 var str_param = "location:'L1', row_name:'r1', value:'18.4'"; 我试图做一些类似的事情来保持我的代码简单 add_row(str_param); 它不起作用。使用stru param调用add_row的好方法是什么?我认为这可能是您的问题: {loc

我正在使用node.js

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

add_row({location:'L1', row_name:'r1', value:'18.4'});
我有一根这样的绳子

var str_param = "location:'L1', row_name:'r1', value:'18.4'";
我试图做一些类似的事情来保持我的代码简单

add_row(str_param);

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

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

{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
我不使用NodeJS,只是在黑暗中拍摄。如果没有,您可以将函数设置为:

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

    // Logic ....
}

如果不起作用,请尝试使用对象字符串并查看函数ParseJSON,我相信它已被调用。

您可以将字符串转换为函数接受的对象

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" }