在向服务器提交查询请求时,有的服务无法使用distinct语句,造成返回的字段(列)中有大量重复值。在项目中返回结果要展示在comobox中,所以不需要重复的字段。
function processCompletedConditions(getFeaturesEventArgs) {
var i, len, features, feature, result = getFeaturesEventArgs.result;
if (result && result.recordsets) {
var field = $("#combField").combobox("getValue");
features = result.recordsets;
var fieldValues = [];
var keys = [];
for (i = 0, len = features.length; i < len; i++) {
if (result.recordsets[i].features) {
for (j = 0; j < result.recordsets[i].features.length; j++) {
var item = {
key: result.recordsets[i].features[j].data[field],
name: result.recordsets[i].features[j].data[field]
};
var index = $.inArray(item.key, keys);
if (index < 0) {
keys.push(item.key);
fieldValues.push(item);
}
}
}
}
$("#combFieldValue").combobox({
data: fieldValues
});
}
$.messager.progress('close');
}
jQuery的$.inArray()函数用于在数组中搜索指定的值,并返回其索引值。如果数组中不存在该值,则返回-1。通过返回值判断在数组中是否存在相同的值,若返回值位-1,即表示此值不存在,则在数组中添加此数据;反之则不添加,继续循环。