我有一个包含来自JsonStore的数据的ComboBox。
数据样本如下:
var datiCombo = [
{"Fiume":"Chiascio","Comune":"Gubbio"},
{"Fiume":"Tevere","Comune":"Perugia"},
{"Fiume":"Tevere","Comune":"Roma"},
];
如果我为我的ComboBox使用“Fiume”列,我有两个条目“Tevere”。有没有办法填充ComboBox并只显示唯一值?
非常感谢
答案 0 :(得分:2)
好的,所以我不建议过滤重复项,而是重新定义从json获取的数据。我猜你也会使用其他组合框的“comune”数据,所以通过过滤重复项,“fiume”和“comune”之间的唯一联系是通过名称搜索。
我建议你将数据重新划分为
var fiume = [{"id":1,"name":"chiascio"},
{"id":2,"name":"Tevere"}];
var comune =[{"name":"Gubbio", "fiumeId":1},
{"name":"Perugia", "fiumeId":2},
{"name":"Roma", "fiumeId":2)];
这只是一个建议,我认为管理选择变更会更容易。
答案 1 :(得分:1)
http://jsfiddle.net/KXPQn/希望这有帮助。
var datiCombo = [
{"Fiume":"Chiascio","Comune":"Gubbio"},
{"Fiume":"Tevere","Comune":"Perugia"},
{"Fiume":"Tevere","Comune":"Roma"},
];
contains = function(array, entry){
for (var j = 0; j<array.length; j++){
if (array[j]["Fiume"]==entry){
return true;
};
};
return false;
}
var comboData = [];
for (var i = 0; i < datiCombo.length; i++){
if (contains(comboData, datiCombo[i]["Fiume"])== false){
comboData.push(datiCombo[i]);
};
};
console.log(comboData);