Sha256: 2bf39688fd6ee8c2698ae782b7ad64f0fceb962b3cd2e57226ee36028a87eb3a

Contents?: true

Size: 520 Bytes

Versions: 185

Compression:

Stored size: 520 Bytes

Contents

const sameWord = (word, candidate) =>
  word.toLowerCase() === candidate.toLowerCase();

const isAnagram = (word, candiate) =>
  normalize(word) === normalize(candiate);

const normalize = str => str.toLowerCase().split('').sort().join();

export default class Anagram {
  constructor(word) {
    this.word = word;
  }

  matches(words) {
    words = Array.isArray(words) ? words : Array.from(arguments);

    return words.filter(candidate => !sameWord(this.word, candidate) && isAnagram(this.word, candidate));
  }
}

Version data entries

185 entries across 185 versions & 1 rubygems

Version Path
trackler-2.2.1.119 tracks/ecmascript/exercises/anagram/example.js
trackler-2.2.1.118 tracks/ecmascript/exercises/anagram/example.js
trackler-2.2.1.117 tracks/ecmascript/exercises/anagram/example.js
trackler-2.2.1.116 tracks/ecmascript/exercises/anagram/example.js
trackler-2.2.1.115 tracks/ecmascript/exercises/anagram/example.js
trackler-2.2.1.114 tracks/ecmascript/exercises/anagram/example.js
trackler-2.2.1.113 tracks/ecmascript/exercises/anagram/example.js
trackler-2.2.1.111 tracks/ecmascript/exercises/anagram/example.js
trackler-2.2.1.110 tracks/ecmascript/exercises/anagram/example.js
trackler-2.2.1.109 tracks/ecmascript/exercises/anagram/example.js
trackler-2.2.1.108 tracks/ecmascript/exercises/anagram/example.js
trackler-2.2.1.107 tracks/ecmascript/exercises/anagram/example.js
trackler-2.2.1.106 tracks/ecmascript/exercises/anagram/example.js
trackler-2.2.1.105 tracks/ecmascript/exercises/anagram/example.js
trackler-2.2.1.104 tracks/ecmascript/exercises/anagram/example.js
trackler-2.2.1.103 tracks/ecmascript/exercises/anagram/example.js
trackler-2.2.1.102 tracks/ecmascript/exercises/anagram/example.js
trackler-2.2.1.101 tracks/ecmascript/exercises/anagram/example.js
trackler-2.2.1.100 tracks/ecmascript/exercises/anagram/example.js
trackler-2.2.1.99 tracks/ecmascript/exercises/anagram/example.js