小编Bla*_*tea的帖子

找出字符串中第一个不重复的字符,这里有什么错误?

我正在做一些练习。问题是在字符串中找到第一个不重复的字符。我的想法是:将字符串转换为数组。将 array[0] 分配给一个新变量,并从 array 中删除这个 array[0]。检查这个新数组是否包含这个变量,如果没有,返回这个变量。否则,使用过滤器删除相同的值元素并获得一个新数组。重复这个过程。代码如下。

const NoneReChar = (str) => {
  let tempArr = str.split('');
  let start = tempArr[0];
  while (true) {
    tempArr.shift();
    if (!tempArr.includes(start)) {
      return start;
    } else {
      tempArr.filter(char => char !== start);
      start = tempArr[0];
    }
  }
}
console.log(NoneReChar("aaaabbbeccc"))
Run Code Online (Sandbox Code Playgroud)

我期望输出'e',但我一直得到'a'......我在这里犯的错误在哪里?

javascript arrays string filter

3
推荐指数
1
解决办法
48
查看次数

Javascript。为什么这个条件 s[i+1] 不会给出“超出范围”的错误?

var romanToInt = function(s) {
  value = 0;
  for (let i = 0; i < s.length; i += 1) {
    symbols[s[i]] < symbols[s[i + 1]] ? value -= symbols[s[i]] : value += symbols[s[i]]
  }
  return value
};
Run Code Online (Sandbox Code Playgroud)

这是一个 leetcode 示例,我对这种情况感到困惑symbols[s[i]] < symbols[s[i+1]] ?,我不明白为什么 s[i+1] 不会超出范围?或者它超出范围但被认为是错误的?

javascript ternary conditional-statements

2
推荐指数
1
解决办法
107
查看次数