我想从显示在我的visualforce页面上的最终数组中删除重复项。
实际的工作代码:(我在数组中得到重复)
function(result, event){
//if success
if(event.status){
var data = {results: []}
data.results = result;
query.callback(data);
}
else{
alert('Invalid Field/Object API Name : '+event.message);
}
},
{escape: true}
);
}
我进行更改的示例代码:
function unique(list){
var result = [];
$.each(list, function(i, e) {
if ($.inArray(e, result) == -1) result.push(e);
});
return result;
}
全方位工作以取得结果:
if(event.status){
var result = [];
var data = {results: []}
$.each(list, function(i, e) {
if ($.inArray(e, data.results) == -1) data.results.push(e);
});
data.results = result;
query.callback( data);
}
但是我无法获得结果。请帮助我完成这项工作。如果我的问题不清楚,请让我知道。
更新了原始代码
您的代码有效,只是忘了删除该data.results = result
行,从而使您无法获得正确的结果:
var result = [];
var data = {results: []}
$.each(list, function(i, e) {
if ($.inArray(e, data.results) == -1)
data.results.push(e);
});
// You have to comment the following line, or data.result get reset
// You could also push to result instead of data.results
// in the $.each function above
//data.results = result;
// ...
console.log(data.results) // => data.results has unique elements!
您还可以使用reduce方法:
data.results = list.reduce(function(ar,item) {
if(result.indexOf(item) == -1)
ar.push(item)
return ar
}, result)
见小提琴
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句