0

我有一本像这样的字典:

db_dict={'Col1': ['1', '2', '3', '4'], 'Col2': ['2', '4', '6'], ...}

我想做一个这样的字符串:

var simpleQuery = "col1={'1', '2', '3', '4'}&col2={'2', '4', '6'}"

到目前为止,我已经尝试过:

function getdbdict() {
{ %
    for key, values in dbdict.items %
}
var col = '{{key}}';
var val = '{{values}}';
var colval = col + '=' + '{' + '"' + val + '"' + '}'; { % endfor %
}
var simpleQuery = colval

我是新手,请帮我做这个。

4

2 回答 2

1

这会做到:

var db_dict={'Col1': ['1', '2', '3', '4'], 'Col2': ['2', '4', '6']};

var workingArray = []
for (var key in db_dict) {
    if (db_dict[key].length > 0)
        workingArray.push(key.toLowerCase() + "={'" + db_dict[key].join("','") + "'}");
    else
        workingArray.push(key.toLowerCase() + "={}");
}

var simpleQuery = workingArray.join("&");

console.log(simpleQuery);  // col1={'1','2','3','4'}&col2={'2','4','6'} 

您的示例采用原始对象的键名并将它们设为小写 in simpleQuery,所以我也这样做了;.toLowerCase()显然,如果不需要,您可以删除。

演示:http: //jsfiddle.net/8rZHF/2/

于 2013-05-23T08:13:28.343 回答
1

您可以尝试以下方法

db_dict={'Col1': ['1', '2', '3', '4'], 'Col2': ['2', '4', '6']};
var str = "";
for(var key in db_dict){
  str +=key +"={";
  for(var i=0;i<db_dict[key].length; i++){
    str += db_dict[key][i];
    if(i != db_dict[key].length-1)
      str +=",";
  }
  str+="}";
  str+="&";
}
str = str.substring(0, str.length - 1);

你可以在这里看到它的作用

我相信它可以被重构,但这只是给你一个想法。

于 2013-05-23T08:20:12.690 回答