💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
发现一件事,一个完全由对象组成的数组,用$.unique()方法去掉重复的时候不管用 ``` var arr = [{text:'第一个',value:'1'},{text:'第二个',value:'2'},{text:'第三个',value:'3'},{text:'第一个',value:'1'},{text:'第二个',value:'2'},{text:'第三个',value:'3'}] ``` 假设用 `arr = $.unique(arr)`,这种方法处理一下,去掉重复的对象,结果返回的还是`arr` 原来的模样,长度位`6`,并没有去掉重复啊。 百思不得其解,查好长时间 `api` 才看明白 原来, 此功能只适用于普通的 `JavaScript DOM` 元素的数组,主要是 `jQuery` 内部使用。 说白了,只能遍历基本的数据类型吧,识别 `object` 还是有难度的。 那没办法咯,只能给他们每一个对象变成字符串,然后去掉重复,然后再给每一个字符串转成对象啦,最后拼成对象。 具体的代码如下: ``` var arr = [{text:'第一个',value:'1'},{text:'第二个',value:'2'},{text:'第三个',value:'3'},{text:'第一个',value:'1'},{text:'第二个',value:'2'},{text:'第三个',value:'3'}]; //arr = $.unique(arr);// 首先用 $.unique() 方法去掉重复一遍,然而并没什么卵用 console.log(arr);//看一下原来的数组 var arrResult = []; for(var i=0;i<arr.length;i++){ arr[i] = JSON.stringify(arr[i]);//对象转成字符串的方法 arrResult.push(arr[i]);//重新填装成一个《字符串》组成的数组 } arr = [];//清空原来的数据 arrResult = $.unique(arrResult); // 去掉重复的字符串 for(var j=0;j<arrResult.length;j++){ arrResult[j] = JSON.parse(arrResult[j]);// 重新给字符串转换成对象 arr.push(arrResult[j]);//重新填装成一个《对象》组成的数组 } console.log(arr);//看一下组装后的数组 ``` 最后的结果: ![mark](http://qiniu.newthink.cc/blog/20171211-084211277.png) 成功啦,成功喽!!!!