Ma façon de dédoublonner un array en js, trivial on dirait quand on regarde la façon d'écrire de lodash pour un même résultat, avouez que c'est moins lisible mais au niveau algo c'est + performant :
la façon de lodash :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 function removeDuplicate(arr = []){ const { length } = arr; for(let i= 0 ;i < length; i++){ for(let y= i+1;y < length; y++){ if(arr[y] == arr[i]){ arr.splice(y,1); y--; } } } return arr; }
la façon ES6 en utilisant Set
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 function eq(value, other) { return value === other || (value !== value && other !== other) } function baseSortedUniq(array, iteratee) { let seen let index = -1 let resIndex = 0 const { length } = array const result = [] while (++index < length) { const value = array[index], computed = iteratee ? iteratee(value) : value if (!index || !eq(computed, seen)) { seen = computed result[resIndex++] = value === 0 ? 0 : value } } return result }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 var arr = [1,2,3,4,1,2,3,1,2,3] var uniqueArr = [...new Set(arr)] console.log(uniqueArr)
Partager