Bootstrap自动完成function不会加载地图

我有一张JSON结果的地图。 我需要将其分配给自动完成。 但似乎我不得不做一份肮脏的工作。 有没有更干净的方法呢?

http://jsfiddle.net/7dLRh/

部分代码非常脏:

$( "#autocomplete1" ).autocomplete({ source: function(request, response) { var re = $.ui.autocomplete.escapeRegex(request.term); var matcher = new RegExp( "n*" + re + "n*", "i"); var arrayKey = $.map(v1.data, function (itemKey, itemValue) { return itemKey }); var arrayValue = $.map(v1.data, function (itemKey, itemValue) { return itemValue }); var key = $.grep( arrayKey, function(item,index){ return matcher.test(item); }); var value = $.grep( arrayValue, function(item,index){ return matcher.test(item); }); var s = "{ "; for (var i =0; i< key.length; i++) { if (i < value.length) { s+= "\"" + value[i] + "\":\"" + key[i] + "\","; } } s = s.substring(0, s.length-1); s += "}"; var jsonObject = jQuery.parseJSON(s); response($.map(jsonObject, function (itemKey, itemValue) { return { label: itemKey, value: itemValue }; })); } }); 

只需这样做:

  var i = 0; var repCodesMap = v1.data; var repCodesSource = new Array(); $.each(repCodesMap, function(key, value) { repCodesSource[i++] = { label : value, value : key }; }); $( "#autocomplete1" ).autocomplete({ source : repCodesSource }); 

在这里更新你的代码: http : //jsfiddle.net/7dLRh/2/