从创建数组的自定义对象 [英] Creating custom object from array
本文介绍了从创建数组的自定义对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有以下元素的数组。我试图从阵列中创建一个对象
VAR ARR = [
找到({数量:{$ LT:20}}),
限制(5),
跳过(0)
]
下面是我的code。在这里我只得到值作为输出。任何帮助将是有益的。
为(VAR I = 0; I< arr.length;我++){
VAR解析度=改编[I] .search(/ \\(/ IG)
如果(RES!= -1){
VAR的结果=改编[I] .split(();
结果=结果[1] .slice(0,-1))
}
}
预计输出
{
行动:查找,
值:{数量:{$ LT:20}}。
限制:5,
跳过:0
}
解决方案
匹配
比拆分
为了这个美好的这种东西
\r
\r\r
\r VAR ARR = [\r
找到({数量:{$ LT:20}}),\r
限制(5),\r
跳过(0)\r
]\r
\r
\r
变种物镜= {};\r
\r
arr.forEach(函数(X,N){\r
变种M = x.match(/(\\ w +)\\(\\ S *(+)\\ S * \\)/。?);\r
如果(N == 0){\r
obj.action = M [1];\r
obj.value = M [2];\r
}其他\r
物镜[米[1] = M [2];\r
\r
});\r
\r
文件撰写(< pre>中+ JSON.stringify(OBJ,0,3));
\r
I have an array with below elements. I am trying to create an object from the array
var arr = [
'find({ qty: { $lt: 20 } } )',
'limit(5)',
'skip(0)'
]
Below is my code. where I am getting only values as the output. Any help on this will be helpful
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))
}
}
Expected Output
{
"action": "find",
"value": "{ qty: { $lt: 20 } }",
"limit": 5,
"skip": 0
}
解决方案
match
is better than split
for this kind of stuff
var arr = [
'find({ qty: { $lt: 20 } } )',
'limit(5)',
'skip(0)'
]
var obj = {};
arr.forEach(function(x, n) {
var m = x.match(/(\w+)\(\s*(.+?)\s*\)/);
if(n == 0) {
obj.action = m[1];
obj.value = m[2];
} else
obj[m[1]] = m[2];
});
document.write("<pre>" + JSON.stringify(obj,0,3));
这篇关于从创建数组的自定义对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文