【发布时间】:2017-12-16 09:20:15
【问题描述】:
我尝试制作一个独特的对象数组。我尝试了很多解决方案。最后写一个函数。它有效,但还有其他解决方案吗?为什么 $.unique 不起作用?
var a = [{"id": "id1", "name": "id1"},{"id": "id1", "name": "id1"},{"id": "id2", "name": "id2"}];
var jq = $.unique(a);
console.log("jq=",jq); // NOT UNIQUE!?
var myfunc = unique(a);
console.log("myfunc=",myfunc); // UNIQUE!
function unique(arr){
var uniqueArr=[];
var jsonarr = [];
$.each(arr,function(ax, a){
var j = JSON.stringify(a);
if( jsonarr.indexOf(j) == -1 ){
jsonarr.push(j);
uniqueArr.push(a);
}
});
return uniqueArr;
}
【问题讨论】:
-
至于为什么 $.unique() 不起作用,根据 jQuery 文档,这是用于对 DOM 元素数组进行排序的。鉴于您没有为它提供一个 DOM 元素数组,这可能就是它不起作用的原因。见api.jquery.com/jQuery.unique
标签: javascript jquery arrays unique