繁体   English   中英

使用visualforce组件从阵列中删除重复项

[英]Removing duplicates from array using on visualforce component

我想从显示在我的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)

小提琴

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM