javascript - 无法理解 javascript 中的 indexOf 以便在字符串中找到唯一值?
问题描述
我有下面的代码来检查字符串是否唯一。
function unique(str) {
let values = [];
for (let letter of str) {
if (values.indexOf(letter) !== -1) {
return false;
}
values.push(letter);
}
return true;
}
console.log(unique("abbds"));
我不正确理解内部的 if 条件。谁能让我理解这个概念?
解决方案
这是您的代码正在执行的操作。你有字符串abbds
和数组values
。在第一次迭代中
- 你检查
a
里面的第一个字符values
values.indexOf("a")
这导致-1
因为a
值中不存在。
在这种情况下,
values.indexOf("a")
因为a
不在里面,所以values
你把它推到里面values
。如果
values
具有字符,在这种情况下,indexOf
将返回该项目第一次出现的索引。
因此values.indexOf(letter) !== -1
将是‘真实的。
该
indexOf()
方法返回可以在数组中找到给定元素的第一个索引,或者-1
如果它不存在。
来自 MDN:Array.prototype.indexOf()
推荐阅读
- video - MoviePy:如何将水平视频转换为垂直视频
- java - Stop IntelliJ code editor from escaping pasted string literal characters
- photoshop - Spawn subprocess through Photoshop Scripting API
- linux - My Bash script ends after entering chroot environment
- javascript - javascript Get the difference between an element of an array and the previous one
- python - Do I really need to list.copy() a list before append?
- c# - How to get date and time from a file on FTP
- c++ - 打印功能中的虚拟功能不被覆盖
- video - 如何从很长的 youtube 链接列表中创建播放列表
- java - Java,将字符更改为字符串