1
1
mirror of https://github.com/theoludwig/programming-challenges.git synced 2024-10-29 22:17:23 +01:00

feat(solution): javascript-non-repeating

This commit is contained in:
divlo 2020-11-15 11:40:06 +01:00
parent 721396e429
commit 379f4e1050
2 changed files with 42 additions and 0 deletions

View File

@ -0,0 +1,5 @@
# javascript-non-repeating - first-non-repeating-character
Programming language : JavaScript
Created by [@Divlo](https://github.com/Divlo) on 15 November 2020.

View File

@ -0,0 +1,37 @@
/**
* @param {string} string
*/
function solution (string) {
const lettersCount = {}
for (let index = 0; index < string.length; index++) {
const character = string[index]
if (lettersCount[character] == null) {
lettersCount[character] = {
total: 1,
firstIndex: index,
value: character
}
} else {
lettersCount[character].total += 1
}
}
let result = null
for (const character in lettersCount) {
const characterObject = lettersCount[character]
if (characterObject.total === 1) {
if (result == null) {
result = characterObject
} else if (characterObject.firstIndex < result.firstIndex) {
result = characterObject
}
}
}
if (result == null) {
return ''
}
return result.value
}
module.exports = solution