javascript中多维数组中的唯一值

时间:2017-01-04 15:32:05

标签: javascript jquery arrays

在js中,我使用我的代码创建一个数组multidimention:

result.each(function(i, element){
   init.push({
        label : $(this).data('label'),
        value : $(this).val(),
    });
});

这个数组在js firebug中是这样的:

[
  Object { label=" Login ",  
           value="Create Login Novell"}, 
  Object { label=" Login ", 
           value="Create Email Baru"}, 
  Object { label=" Login ",  
           value="Create Login Novell"}
]

我的问题是,我怎样才能得到唯一的元素(值), 我写了这样的代码,但没有给我我需要的代码;

  var unique = init.filter(function(item,i, a){
      return i==a.indexOf(item);
  });

我需要这样:

[
  Object { label=" Login ",  
           value="Create Login Novell"}, 
  Object { label=" Login ", 
           value="Create Email Baru"}, 
]

1 个答案:

答案 0 :(得分:0)

确实你需要使用过滤器,但是你必须先创建一个找到值的最后一个索引的函数:

var array = [{ label:" Login ", value: "Create Login Novell"}, {label: " Login ", value: "Create Email Baru"}, {label: " Login ", value: "Create Login Novell"}];
var posit = (tab, value) => {
  var pos = -1;
  tab.forEach((x, index) => {  
    if (x.value === value) pos = index;
  });
  return pos;
}
var result = array.filter((x,i,arr) => posit(arr, x.value) === i);
console.log(result);