js object 去重
2024-01-10 05:50:37
?测试:数据
?let arr = [
? ? ? ? ? ? ? ? { a: 1, b: 2 },
? ? ? ? ? ? ? ? { b: 3, a: 4 },
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? b: 2, a: 1
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ]
结果
function unique(arr) {
? ? ? ? ? ? const newArr = [...arr]
? ? ? ? ? ? for (let i = 0; i < newArr.length; i++) {
? ? ? ? ? ? ? ? for (let j = i + 1; j < newArr.length; j++) {
? ? ? ? ? ? ? ? ? ? if (this.duibi(newArr[i], newArr[j])) {
? ? ? ? ? ? ? ? ? ? ? ? newArr.splice(j, 1);
? ? ? ? ? ? ? ? ? ? ? ? j--;
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? ? ? return newArr;
? ? ? ? ? ? // return Array.from(new Set(arr));
? ? ? ? }
? ? ? ? function duibi(val1, val2) {
? ? ? ? ? ? if (isObject(val1) && isObject(val2)) {
? ? ? ? ? ? ? ? if (val1.length != val2.length) {
? ? ? ? ? ? ? ? ? ? return false;
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? let key1 = Object.keys(val1);
? ? ? ? ? ? ? ? let key2 = Object.keys(val2);
? ? ? ? ? ? ? ? for (let k1 of key1) {
? ? ? ? ? ? ? ? ? ? if (!key2.includes(k1)) {
? ? ? ? ? ? ? ? ? ? ? ? return false;
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? if (!duibi(val1[k1], val2[k1])) {
? ? ? ? ? ? ? ? ? ? ? ? return false;
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? return true;
? ? ? ? ? ? } else {
? ? ? ? ? ? ? ? return val1 == val2
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? //是否为集合
? ? ? ? function isObject(obj) {
? ? ? ? ? ? return obj !== null && typeof obj === 'object';
? ? ? ? }
文章来源:https://blog.csdn.net/qq_42074075/article/details/135400640
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!