js代码-JS数组去重
在JavaScript中,数组去重是一项常见的操作,尤其是在处理数据集合时。数组去重有多种方法,每种方法都有其特点和适用场景。本篇将详细探讨JavaScript中的数组去重技术。 1. **基本方法:使用Set** ES6引入了Set数据结构,它类似于数组,但是成员的值都是唯一的,没有重复的值。因此,利用Set可以非常方便地实现数组去重。 ```javascript let arr = [1, 2, 3, 4, 4, 5, 5, 5]; let uniqueArr = [...new Set(arr)]; console.log(uniqueArr); // 输出:[1, 2, 3, 4, 5] ``` 2. **使用filter()函数** filter()函数可以创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。在这个案例中,条件是该元素未出现在已去重的子数组中。 ```javascript let arr = [1, 2, 3, 4, 4, 5, 5, 5]; let uniqueArr = arr.filter((item, index, array) => { return array.indexOf(item) === index; }); console.log(uniqueArr); // 输出:[1, 2, 3, 4, 5] ``` 3. **使用reduce()函数** reduce()函数对数组中的每个元素执行一个由您提供的reducer函数(升序执行),将其结果汇总为单个返回值。 ```javascript let arr = [1, 2, 3, 4, 4, 5, 5, 5]; let uniqueArr = arr.reduce((accumulator, current) => accumulator.includes(current) ? accumulator : [...accumulator, current], []); console.log(uniqueArr); // 输出:[1, 2, 3, 4, 5] ``` 4. **双重循环** 这是一种传统的方法,虽然效率较低,但思路清晰。外层循环遍历数组,内层循环检查当前元素是否已在新数组中。 ```javascript let arr = [1, 2, 3, 4, 4, 5, 5, 5]; let uniqueArr = []; for(let i = 0; i < arr.length; i++) { let isUnique = true; for(let j = 0; j < uniqueArr.length; j++) { if(uniqueArr[j] === arr[i]) { isUnique = false; break; } } if(isUnique) { uniqueArr.push(arr[i]); } } console.log(uniqueArr); // 输出:[1, 2, 3, 4, 5] ``` 5. **使用Object的属性作为键** 利用JavaScript对象的键是唯一的特性,将数组元素作为对象的属性,最后将对象的属性值转换回数组。 ```javascript let arr = [1, 2, 3, 4, 4, 5, 5, 5]; let uniqueArr = Array.from(new Map(arr.map(item => [item, item])).values()); console.log(uniqueArr); // 输出:[1, 2, 3, 4, 5] ``` 以上就是JavaScript中常用的数组去重方法。在实际开发中,应根据数据量和性能需求选择合适的方法。例如,当数据量较小且不考虑兼容性时,Set和Map方法更为便捷;当数据量较大,且需要考虑兼容性时,filter或reduce方法可能更合适。
- 1
- 粉丝: 3
- 资源: 945
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助