【发布时间】:2022-07-07 00:02:40
【问题描述】:
有人可以向我解释一下 lastIndexOf 究竟是如何工作的吗? 具体来说:我不明白如何比较 str[i] !== i 在这里工作。它如何检测字符是否重复?
这必须是一个简单的练习,以确定 str 是否具有在同一个 str 中不会出现两次的唯一字符。
isUnique('abcdef'),
isUnique('89%df#$^a&'),
isUnique('abcaef'));
function isUnique(str)
{
for(var i = 0; i < str.length; i++)
{
if(str.lastIndexOf(str[i]) !== i) return false;
}
return true;
}
【问题讨论】:
-
尝试记录
i、str[i]和str.lastIndexOf(str[i])以查看它们是什么。 -
因为您不想计算要搜索的字母。因此,您只在 之后搜索它。而且由于您从一开始就这样做,所以您不会错过任何一封信。
-
if(str.lastIndexOf(str[i]) !== str.indexOf(str[i])) return false;对我来说这个逻辑是有道理的,但我无法弄清楚我们如何将字母“A”与数字 i 进行比较,就像这里if(str.lastIndexOf(str[i]) !== i) return false; -
@ITgoldman — 不,应该是
str.indexOf(str[i], i+1)。 -
@MaxChergik 为什么
str.lastIndexOf(str[i])会回信A...?
标签: javascript