下面是用来创建随机数数组的函数(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);
}