jQuery ui catcomplete在循环对象中获取数据对象

时间:2018-02-15 08:37:24

标签: javascript jquery jquery-ui

参考以下代码。我使用来自jQuery ui的catcomplete,我希望从每个类别中获取国家列表,以便在搜索时显示但是我未定义我做错了什么?

这是我的对象数组:

24:category:"Afrika"
    country:1:{label: "Namibia"}
            2:{label: "Sydafrika"}
            3:{label: "Tanzania"}
            4:{label: "Madagaskar"}
25:category:"Asien"
    country:1:{label: "Private: Södra Indien"}
            2:{label: "Indonesien"}
            3:{label: "Filippinerna"}
            4:{label: "Indien"}
            5:{label: "Thailand"}

这是我的功能:

 $('#autocomplete').catcomplete({            
         source: function (request, response) {
                //data :: JSON list defined
                response($.map(TourArea, function (value, key) {
                     return {
                         category: value.category,
                         label: value.country.label,
                     }
                 }));

         },
  });

结果是:country array得到undefined Result

1 个答案:

答案 0 :(得分:0)

现在我发现并且它有效。我只需将所有对象合并为一个。 How to make multi id array object to all in one

let newData = Object.values(data).map(v => {
let x = [];
for (let k in v) x.push(v[k]);
 return x;
}).reduce((c, v) => {
 c = c.concat(v);
return c;
}, []);

自动完成功能:

$('#autocomplete').catcomplete({
   source: newData,
 });

完成所有工作正常。