var firstUniqChar = function (s) {
let obj = {};
for (let i = 0; i < s.length; i++) {
if (obj[s[i]]) obj[s[i]]++;
else obj[s[i]] = 1;
}
let answer = '';
for (let [key, value] of Object.entries(obj)) {
if (value === 1) {
answer = key;
break;
}
}
return answer ? s.indexOf(answer) : -1;
};

HashMap의 기초 문제라고 볼 수 있다. 중복된 문자가 있다면 obj객체에서 해당 key에 해당하는 value 값은 1보다 클 것이다.
그 후 Object.entries(obj)를 이용한 반복문을 사용해 반복이 되지 않는, 즉 value가 1인 key가 있다면 answer 변수에 그 값을 담아주고 break를 통해 반복문을 종료해준다.
이후 indexOf 메서드를 사용해 s에 해당 answer에 해당하는 인덱스가 있다면 그 인덱스를 return하고, 없다면 -1을 return 해주면 된다.
수정, 지적을 환영합니다!
https://leetcode.com/problems/first-unique-character-in-a-string/