Package Exports
- @pelevesque/remove-anagrams
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@pelevesque/remove-anagrams) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
remove-anagrams
Removes and returns anagrams from an array.
Node Repository
https://www.npmjs.com/package/@pelevesque/remove-anagrams
Installation
npm install @pelevesque/remove-anagrams
Tests
Command | Description |
---|---|
npm test or npm run test |
All Tests Below |
npm run cover |
Standard Style |
npm run standard |
Coverage |
npm run unit |
Unit Tests |
Usage
Parameters
arr (required)
options (optional) default = { groupBy: 1, canonicalize: false, substringsToIgnore: [], remove: true }
Requiring
const removeAnagrams = require('@pelevesque/remove-anagrams')
Basic
const arr = [
'12345',
'elvis',
'lives', // 1
'34251', // 0
'silve', // 1
'!@#$%',
'%$#@!' // 5
]
const anagrams = removeAnagrams(arr)
/*
arr = [
'12345',
'elvis',
'!@#$%'
]
anagrams = [
'lives',
'34251',
'silve',
'%$#@!'
]
*/
Grouping by Length Option
const arr = [
'123abc456',
'abc456123', // 0
'a1b2c3456',
'456def789gh',
'789ghdef456', // 3
'4g5hdef6789'
]
const opts = { groupBy: 3 }
const anagrams = removeAnagrams(arr, opts)
/*
arr = [
'123abc456',
'a1b2c3456',
'456def789gh',
'4g5hdef6789'
]
anagrams = [
'abc456123',
'789ghdef456'
]
*/
Explicit Grouping Option
const arr = [
'22boy321j',
'j321boy22', // 0
'aabbccdd',
'boy22321j', // 0
'22boy321j', // 0
'b2o2y3j21',
'aabbccdd',
'ccbbaadd'
]
const opts = { groupBy: ['22', 'boy', '321', 'j'] }
const anagrams = removeAnagrams(arr, opts)
/*
arr = [
'22boy321j',
'aabbccdd',
'b2o2y3j21',
'aabbccdd',
'ccbbaadd'
]
anagrams = [
'j321boy22',
'boy22321j',
'22boy321j'
]
*/
Canonicalize Option
const arr = [
'ElviS',
'lives', // 0
'AmwÉ',
'earnw' // 2
]
const opts = { canonicalize: true }
const anagrams = removeAnagrams(arr, opts)
/*
arr = [
'ElviS',
'AmwÉ'
]
anagrams = [
'lives',
'earnw'
]
*/
Substrings To Ignore Option
const arr = [
'christmas tree',
'search, set, trim', // 0
'christmastree', // 0
'elvis',
'lives' // 3
]
const opts = { substringsToIgnore: [' ', ','] }
const anagrams = removeAnagrams(arr, opts)
/*
arr = [
'christmas tree',
'elvis'
]
anagrams = [
'search, set, trim',
'christmastree',
'lives'
]
*/
Remove Option
const arr = [
'elvis',
'lives', // 0
'aabbcc',
'aabbcc', // 2
'ccbbaa' // 2
]
const opts = { remove: false }
const anagrams = removeAnagrams(arr, opts)
/*
arr = [
'elvis',
'lives',
'aabbcc',
'aabbcc',
'ccbbaa'
]
anagrams = [
'lives',
'aabbcc',
'ccbbaa'
]
*/