1. 使用 ES6 的 Set 进行去重
- <!DOCTYPE html>
- <HTML>
- <head>
- <meta charset="UTF-8">
- <title>
- 数组去重
- </title>
- </head>
- <body>
- <script type="text/javascript">
- function array_dedup(arr) {
- return Array.from(new Set(arr));
- }
- let arr = array_dedup([1, 2, 3, 3, 4, 5, 5, 6]);
- console.log(arr); //1,2,3,4,5,6
- </script>
- </body>
- </HTML>
使用此方法非常简单, 通俗易懂. 该方法主要利用了 Set 内部结构的原理, 然后通过 Array.from() 方法将 set 转换为数组, 一点就通.
2. 使用 indexof 去重
- <!DOCTYPE HTML>
- <HTML>
- <head>
- <meta charset="UTF-8">
- <title>
- 数组去重
- </title>
- </head>
- <body>
- <script type="text/javascript">
- let arrs = [1, 2, 3, 4, 5, 5, 6];
- function arraydedep(arr) {
- let temp = [];
- for (let i = 0; i < arr.length; i++) {
- if (temp.indexOf(arrs[i]) == -1) {
- temp.push(arrs[i])
- }
- }
- return temp;
- }
- let arr = arraydedep(arrs);
- console.log(arr); //1,2,3,4,5,6
- </script>
- </body>
- </HTML>
这一种方法可能在我开发过程中遇到最多的方法吧!
3. 扩展运算符和 Set 实现去重
- <!DOCTYPE HTML>
- <HTML>
- <head>
- <meta charset="UTF-8">
- <title>
- 数组去重
- </title>
- </head>
- <body>
- <script type="text/javascript">
- let arr = [1, 2, 2, 3, 3, 4, 5];
- let unique = [...new Set(arr)];
- console.log(unique); // 输出 1,2,3,4,5
- </script>
- </body>
- </HTML>
此方法更是舒服, 代码简单, 容易上手和阅读.
来源: https://www.cnblogs.com/jjgw/p/11574495.html