在 JavaScript 编程中,常常须要对数组进行去重操作。常见的去重办法有循环遍历、应用 Set 汇合、应用对象属性等。本文将介绍这些办法,并通过实例代码进行演示。
一、循环遍历
循环遍历是一种比较简单的数组去重办法。它的原理是遍历数组中的每个元素,将反复的元素去除。具体实现如下:
javascriptCopy codefunction unique(arr) {const result = [];
for (let i = 0; i < arr.length; i++) {if (result.indexOf(arr[i]) === -1) {result.push(arr[i]);
}
}
return result;
}
const arr = [1, 2, 3, 3, 4, 5, 5, 6];
console.log(unique(arr)); // [1, 2, 3, 4, 5, 6]
循环遍历的毛病是效率低,因为它须要对数组进行屡次遍历,工夫复杂度为 O(n^2)。
二、应用 Set 汇合
Set 汇合是 ES6 新增的一种数据结构,它能够存储不反复的值。应用 Set 汇合能够很不便地对数组进行去重。具体实现如下:
javascriptCopy codefunction unique(arr) {return [...new Set(arr)];
}
const arr = [1, 2, 3, 3, 4, 5, 5, 6];
console.log(unique(arr)); // [1, 2, 3, 4, 5, 6]
应用 Set 汇合的长处是效率高,因为它只须要遍历一次数组,工夫复杂度为 O(n)。
三、应用对象属性
应用对象属性是一种比拟奇妙的数组去重办法。它的原理是遍历数组中的每个元素,将元素值作为对象属性名,并将属性值设为 true。如果对象中曾经存在该属性名,则阐明该元素是反复的,能够疏忽。具体实现如下:
javascriptCopy codefunction unique(arr) {const obj = {};
const result = [];
for (let i = 0; i < arr.length; i++) {if (!obj[arr[i]]) {obj[arr[i]] = true;
result.push(arr[i]);
}
}
return result;
}
const arr = [1, 2, 3, 3, 4, 5, 5, 6];
console.log(unique(arr)); // [1, 2, 3, 4, 5, 6]
应用对象属性的长处是效率高,工夫复杂度为 O(n)。然而须要留神的是,该办法只实用于数组元素为字符串或数字的状况。
总结
本文介绍了 JavaScript 中的三种数组去重办法:循环遍历、应用 Set 汇合、应用对象属性。这些办法各有优缺点,具体应用要依据理论状况进行抉择
jsjiami.com
如果您对文章内容有不同认识, 或者疑难,欢送到评论区留言,或者私信我都能够。
也能够到上方网站,底部有我联系方式详谈。