我有一个函数调用,如:
var ex = _.where(obj, {param1:0,param2:1});
工作正常,背后的所有代码。
我检查我的网址并取出参数并将此信息保存到数组中:
var query = window.location.search.substring(1);
var vars = query.split("&");
var testParamter = vars.toString().replace( /=/g,':' );
通过使用console.log(testParamter)返回;结果如下:
param1:0,param2:1
但我无法将var testParamter插入到我的函数调用中:
var ex = _.where(obj, {testParamter});
因为它是一个字符串,我不能用eval()来处理它。那么有人能告诉我解决它的正确方法吗?
感谢
答案 0 :(得分:0)
迭代查询字符串中的值并从这些值中创建一个对象:
var query = window.location.search.substring(1),
vars = query.split("&"),
params = {};
$.each(vars, function(k,v) {
var arr = v.split('=');
params[ decode(arr[0]) ] = decode(arr[1]);
});
var ex = _.where(obj, params);
function decode(s) {
return decodeURIComponent(s.replace(/\+/g, " "));
}