下面是用来创建随机数数组的函数(1-1000)
function createRandomArr(len){
var arr = [];
for(var i = 0; i < len; i++) {
arr[i] = Math.floor(Math.random() * 1000) + 1;
}
return arr;
}
1、for循环(嵌套)+ 新数组
function sort(arr) {
var flag = 0;
var result = [];
for(var i = 0; i < arr.length; i++) {
flag = 0;
for(var j = 0; j < arr.length; j++) {
if(result[j] == arr[i]) {
flag = 1;
break;
}
}
if(flag == 0) {
result.push(arr[i]);
}
}
return result;
}
2、for循环+indexOf()
function sort(arr) {
var result = [];
for(var i = 0; i < arr.length; i++){
if(result.indexOf(arr[i]) == -1) {
result.push(arr[i]);
}
}
return result;
}
3、forEach()+indexOf()
function sort(arr) {
var result = [];
arr.forEach((item, index, array) => {
if(result.indexOf(item) == -1){
result.push(item);
}
})
return result;
}
4、filter()+indexOf()
function sort(arr) {
return arr.filter((item, index, array) => array.indexOf(item) === index);
}
5、reduce()+indexOf()
function sort(arr){
return arr.reduce((prev, cur) => prev.indexOf(cur) != -1 ? prev : [...prev,cur],[]);
}
6、filter() + new Map()较优
function sort(arr) {
const seen = new Map();
return arr.filter((item) => !seen.has(item) && seen.set(item, 1));
}
7、new Set()+ Array.from()较优
function sort(arr){
return Array.from(new Set(arr));
}
8、new Set()+展开运算符较优
function sort(arr) {
return [...(new Set(arr))];
}
9、for循环+新对象较优
function sort(arr) {
let obj = {};
for(let i = 0; i < arr.length; i++){
if(!obj[arr[i]]) {
obj[arr[i]] = 1;
}
}
return Object.keys(obj);
}

本文介绍了一种创建1-1000范围内随机数数组的方法,并详细探讨了9种不同的去重算法实现,包括使用for循环、indexOf()、forEach()、filter()、reduce()、Set对象以及Map对象等,旨在帮助读者理解和掌握JavaScript中数组去重的多种技巧。
906

被折叠的 条评论
为什么被折叠?



