在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"},
]
答案 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);