function solve(arr) { let n = arr.shift(); let digitsArr = new Array(10).fill(0); let countsArr = new Array(16).fill(0); for (let i = 0; i < n.length; i++) { let digit = Number(n[i]); digitsArr[digit]++; } for (let i = 0; i < digitsArr.length; i++) { let count = digitsArr[i]; if(count > 0){ countsArr[count]++; } } let differentOddCounts = countsArr.reduce((a, countOfDigitsWithThisOccurence, occurenceOfDigit) => { //count different digits that occur odd number of times in string if (occurenceOfDigit % 2 == 1) { a += countOfDigitsWithThisOccurence; } return a; }, 0) if (differentOddCounts > 1) { console.log('No palindromic number available.'); } else { let res = ''; let oddCountIndex = undefined; for (let i = 9; i >= 0; i--) { let count = digitsArr[i]; if(count % 2 == 0) { res += i.toString().repeat(count / 2); } else { oddCountIndex = i; } } let resReversed = res.split('').reverse().join(''); if(oddCountIndex != undefined){ let oddCount = digitsArr[oddCountIndex]; res += oddCountIndex.toString().repeat(oddCount); } res += resReversed; console.log(res); } }