liudong
2023-05-29 340f156319b863525e50e900c58e59b86ecb3d5e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/**
 * Reduce an array to unique values, optionally into a separate array.
 *
 * @module reduce-unique
 * @example
 * > const unique = require('reduce-unique')
 *
 * > const arr = [ 1, 3, 8, 3, 1, 2, 1, 9, 3, 3 ]
 *
 * > arr.reduce(unique)
 * [ 1, 3, 8, 2, 9 ]
 *
 * > arr.reduce(unique, [ 'one', 'two' ])
 * [ 'one', 'two', 1, 3, 8, 2, 9 ]
 *
 * > arr.reduce([ 3 ])
 * 3
 */
module.exports = reduceUnique
 
function reduceUnique (prev, curr) {
  if (!Array.isArray(prev)) prev = [ prev ]
  if (prev.indexOf(curr) === -1) prev.push(curr)
  return prev
}