Javascript 从数组创建自定义对象
我有一个包含以下元素的数组。我正试图从数组中创建一个对象Javascript 从数组创建自定义对象,javascript,arrays,json,node.js,Javascript,Arrays,Json,Node.js,我有一个包含以下元素的数组。我正试图从数组中创建一个对象 var arr = [ 'find({ qty: { $lt: 20 } } )', 'limit(5)', 'skip(0)' ] 下面是我的代码。在这里,我只得到作为输出的值。这方面的任何帮助都会很有帮助 for (var i = 0; i < arr.length; i++) { var res = arr[i].search(/\(/ig) if (res!= -1) {
var arr = [
'find({ qty: { $lt: 20 } } )',
'limit(5)',
'skip(0)'
]
下面是我的代码。在这里,我只得到作为输出的值。这方面的任何帮助都会很有帮助
for (var i = 0; i < arr.length; i++) {
var res = arr[i].search(/\(/ig)
if (res!= -1) {
var result = arr[i].split("(");
result = result[1].slice(0, -1))
}
}
看到这个了吗
只需检查元素是否是数组中的第一个元素,如果是,则将action键和value键设置为splitted array,否则只需将splitted value分别指定给key和value
var-arr=[
'查找({qty:{$lt:20}})',
“限制(5)”,
'跳过(0)'
]
var result={};
对于(变量i=0;i document.write(JSON.stringify(result))
match
比split
更适合这种东西
var-arr=[
'查找({qty:{$lt:20}})',
“限制(5)”,
'跳过(0)'
]
var obj={};
arr.forEach(函数(x,n){
var m=x.match(/(\w+)\(\s*(.+?)\s*\)/);
如果(n==0){
obj.action=m[1];
obj.value=m[2];
}否则
obj[m[1]]=m[2];
});
document.write(“+JSON.stringify(obj,0,3))谢谢大家帮助我。现在我得到了预期的输出。是否可以将值设置为对象而不是字符串({qty:{$lt:20})。{“行动”:“查找”、“值”:“{QTY:{$lt:20 }}”、“限制”:5、“跳过”:0 }@ USE4324324,如果它帮助您解决问题,请考虑接受答案。@ MISH您的代码工作是一个主要缺陷。{“操作”:“查找”,“值”:“{qty:{$lt:20}}”,“限制”:“5”,“跳过”:“0”}值正在转换为字符串。例如,“限制”:5@user4324324:我没有回答-你指的是谁的代码?@mish我错了。我为此道歉
{
"action": "find",
"value": "{ qty: { $lt: 20 } }",
"limit": 5,
"skip": 0
}