首页 > 解决方案 > 返回字符串的第一个非重复字符

问题描述

在我的代码的第一块中,我有一个' if '语句不能正常工作,我不知道为什么。

使用参数 'hous' 时,应输入第一个 'if' 语句并返回 0。它改为返回 -1。

var firstUniqChar = function(s) {

    for (let i = 0; i < s.length; i++){
            let letter = s[i];
            // console.log('s[i]: ' + letter);
            // console.log(s.slice(1));
            // console.log( 'i: ' + i);

            if ((i = 0) && !(s.slice(1).includes(letter))) {
                    return 0;
            }
            if ((i = s.length - 1) && !(s.slice(0, i).includes(letter))) {
                    return 1;
            }
            if(!(s.slice(0, i).includes(letter)) && !(s.slice(i + 1).includes(letter))) {
                return 2;
        }
    }
    return -1;
};
console.log(firstUniqChar("hous"));

标签: javascript

解决方案


这是编写函数的另一种方式:

const firstUniqChar = s => [...s].filter(c=>!(s.split(c).length-2))[0] || -1;

console.log(firstUniqChar("hous"));
console.log(firstUniqChar("hhoous"));
console.log(firstUniqChar("hhoouuss"));


推荐阅读