此问题已在此处找到答案:
在javascript比较中应该使用哪个等于运算符(==vs===)((48个答案)
为什么在数组迭代中使用“for…in”是个坏主意((27个答案)
两天前关门了。
我在解决基本的算法问题,我陷入了这段代码中。
问题是获取字符串数据并删除重复的字符。例如,输入:“ksekkset”,输出:“kset”
这就是我的解决方案。
function solution(s) {
let answer = "";
for(let i in s) {
if(s.indexOf(s[i]) == i) answer+=s[i];
}
return answer;
}
我的问题是,为什么我只有在if()中加上“==”才能得到正确的答案?当我输入“==”时,为什么if()只返回false?
如果我使用for循环,“==”也可以使用。。
function solution2(s) {
let answer = "";
for(let i=0; i<s.length; i++) {
if(s.indexOf(s[i])===i) answer+=s[i];
}
return answer;
}
我太糊涂了!
1条答案
按热度按时间9cbw7uwe1#
正如上面提到的@vlaz。。==vs===并不是唯一的区别。
我在您的程序中编写了change,以尝试for/in change和===change的所有组合,您可以看到,唯一一个不能按预期工作的是
===
具有for
/in
.奇怪的是,对于一根弦,
for
/in
将索引作为字符串提供给您,即使它们是数字!