# No repeats please - code works on jsfiddle, but not on freeCodeCamp

No repeats please - code works on jsfiddle, but not on freeCodeCamp
0

#1

Tell us what’s happening:

My code is working on jsfiddle, passing all the tests, here: https://jsfiddle.net/ethanryan/8psh2enk/

But it’s not working on freeCodeCamp.

Anyone have any idea why?

``````
//helper method (got this from StackOverflow)
function hasDuplicates(str) {
var duplicates = (/([a-z])\1/i).test(str)
return duplicates
}
//console.log( hasDuplicates('aba') )

function getPermutations(string) {
if (string.length < 2) {
console.log('string.length is less than 2... return string!');
return string; // This is our break condition
}

var permutations = []; // This array will hold our permutations

for (var i = 0; i < string.length; i++) {
var character = string[i];

var current = string.slice(0, i) //adding this
//console.log('current is: ', current)

var next = string.slice(i + 1, string.length) //adding this
//console.log('next is: ', next)

var remainingString = current + next;
console.log('remainingString is: ', remainingString)
//refactoring below line into above:
//var remainingString = string.slice(0,i) + string.slice(i+1,string.length); //Note: you can concat Strings via '+' in JS

for (var subPermutation of getPermutations(remainingString)) //calling recursively
var result = character + subPermutation
console.log(result, ' gets pushed to permutations')
permutations.push(result)
}
console.log('permutations is: ', permutations)
console.log('permutations.length is: ', permutations.length)
return permutations;
}

//var array = getPermutations('aab'); //this is where we call above
//getPermutations('abc');

//final function, calls functions above:
function permAlone(string) {
if (string.length === 1) {
console.log('string.length is 1')
return 1
}
//var array = getPermutations('aab'); //this is where we call above
var array = getPermutations(string); //this is where we call above
console.log('array from getPermutations(string) is: ', array)

if (hasDuplicates(string) === false) {
console.log('removing strings with duplicates')
return string
}
})
}
permAlone("aab") //should return 2.
//permAlone("aaa") //should return 0.
//permAlone("aabb") //should return 8.
//permAlone("abcdefa") //should return 3600.
//permAlone("abfdefa") //should return 2640.
//permAlone("zzzzzzzz") //should return 0.
//permAlone("a") //should return 1.

//permAlone("aaab") //should return 0.
//permAlone("aaabb") //should return 12.
``````

Your Browser User Agent is: `Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36`.

#2

You seem to have forgotten braces at this part.

``````for (var ... of ...) {
var result = ...;
permutations.push(result);
}
``````

Then remove the `console.log()`s because they’ll slow down your code.

You might also consider putting semicolons where there are supposed to be semicolons. Before I found the missing braces I noticed a test case going green when I added them.

#3

Amazing! That did it.

You’re right, the missing braces were causing the tests not to pass, and too many console.log()s were really slowing down the code.

Thanks so much!