@@ -60,6 +60,10 @@ function keepOnlyDuplicates(lines: string[]): string[] {
6060 return Array . from ( new Set ( lines . filter ( ( element , index , array ) => array . indexOf ( element ) !== index ) ) ) ;
6161}
6262
63+ function keepOnlyNotDuplicates ( lines : string [ ] ) : string [ ] {
64+ return Array . from ( new Set ( lines . filter ( ( element , index , array ) => ( array . lastIndexOf ( element ) === array . indexOf ( element ) ) ) ) ) ;
65+ }
66+
6367function removeBlanks ( lines : string [ ] ) : void {
6468 for ( let i = 0 ; i < lines . length ; ++ i ) {
6569 if ( lines [ i ] . trim ( ) === '' ) {
@@ -143,7 +147,8 @@ const transformerSequences = {
143147 sortNatural : [ makeSorter ( naturalCompare ) ] ,
144148 sortShuffle : [ shuffleSorter ] ,
145149 removeDuplicateLines : [ removeDuplicates ] ,
146- keepOnlyDuplicateLines : [ keepOnlyDuplicates ]
150+ keepOnlyDuplicateLines : [ keepOnlyDuplicates ] ,
151+ keepOnlyNotDuplicateLines : [ keepOnlyNotDuplicates ]
147152} ;
148153
149154export const sortNormal = ( ) => sortActiveSelection ( transformerSequences . sortNormal ) ;
@@ -159,3 +164,4 @@ export const sortNatural = () => sortActiveSelection(transformerSequences.sortNa
159164export const sortShuffle = ( ) => sortActiveSelection ( transformerSequences . sortShuffle ) ;
160165export const removeDuplicateLines = ( ) => sortActiveSelection ( transformerSequences . removeDuplicateLines ) ;
161166export const keepOnlyDuplicateLines = ( ) => sortActiveSelection ( transformerSequences . keepOnlyDuplicateLines ) ;
167+ export const keepOnlyNotDuplicateLines = ( ) => sortActiveSelection ( transformerSequences . keepOnlyNotDuplicateLines ) ;
0 commit comments