数组去重六种方式【还有一些方式未补充】
2021/10/1 23:11:04
本文主要是介绍数组去重六种方式【还有一些方式未补充】,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
数组去重的方式,直接贴代码:
// 1. indexOf + for循环 var removeDuplicates = function (nums) { let arr = []; for (let i of nums) { if (arr.indexOf(i) === -1) { arr.push(i); } } return arr; };
// 2. 双重for循环 + splice 暴力解决 var removeDuplicates = function (nums) { for (let i = 0; i < nums.length; i++) { for (let j = i + 1; j < nums.length; j++) { if (nums[i] === nums[j]) { nums.splice(j, 1); j -= 1; // 删除一个数后,应该继续对这个位置新的数判断 } } } return nums; };
// 3. 类似2.,先sort排序,这样只需要一次for循环 var removeDuplicates = function(nums) { if (!Array.isArray(nums)) { console.log('Type Error!'); return ; } else { let arr = nums.sort(); let duplicate_arr = [arr[0]]; for (let i=1;i<arr.length;i++) { if (arr[i] !== arr[i-1]) { duplicate_arr.push(arr[i]); } } return duplicate_arr; } };
// 4. includes 判断一个数组有没有一个值,其实类似于 indexOf var removeDuplicates = function (nums) { let arr = []; for (let i of nums) { if (!arr.includes(i)) { arr.push(i); } } return arr; };
// 5. filter + indexOf var removeDuplicates = function (nums) { return nums.filter((value, index, array) => { return index === array.indexOf(value); }) };
// 6. ES6 Set var removeDuplicates = function(nums) { return Array.from(new Set(nums)) };
测试代码:
let nums = [0, 0, 1, 1, 1, 1, 2, 2, 3, 3, 4, 'hello', 'hello']; console.log(removeDuplicates(nums));
结果:
[ 0, 1, 2, 3, 4, 'hello' ]
这篇关于数组去重六种方式【还有一些方式未补充】的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南