【问题标题】:Removing duplicates from array using on visualforce component使用visualforce组件从数组中删除重复项
【发布时间】:2016-03-14 07:22:10
【问题描述】:

我想从我的 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);                           
    }

但我无法得到结果。请帮我完成这项工作。如果我的问题不清楚,请告诉我。

更新原代码

【问题讨论】:

标签: javascript jquery arrays arraylist unique


【解决方案1】:

您的代码有效,您只是忘记删除 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 method:

data.results = list.reduce(function(ar,item) {
  if(result.indexOf(item) == -1)
    ar.push(item)
  return ar
}, result)

fiddle

【讨论】:

  • 你试过使用reduce方法吗?在您的$.inArray 调用中有一个list 变量,您确定这个变量存在并且您没有用result 切换它吗?您是否添加了一些 console.log() 语句来调试您的代码?
猜你喜欢
  • 2012-12-06
  • 2012-03-25
  • 2012-08-05
  • 2011-06-29
  • 2011-01-04
相关资源
最近更新 更多