【发布时间】:2018-01-27 16:24:14
【问题描述】:
我正在尝试检查字符串中的所有字符是否都是唯一的。以下代码不断返回true。我怀疑是if 条件一直返回false,除非排序列表中的前两个字符相同。
有人可以帮忙吗?
function checkifStringisUnique (str) {
var chars = str.split('')
var sortedChars = chars.sort()
console.log(sortedChars)
console.log(sortedChars.length)
for (i=0; i < sortedChars.length; i++) {
if (sortedChars[i] === sortedChars[i+1]) {
return false
}
return true
}
}
【问题讨论】:
-
“如果一个字符串是唯一的”是什么意思?你的意思是'如果字符串中的所有字符都是唯一的'?
-
你知道,这个for循环作为一个循环是没有意义的。如果没有 for 循环部分,它实际上是相同的,因为它会立即以 return true 或 false 终止。
-
让内置类型为您完成工作:
return new Set(s).size === str.length; -
只是另一个提示,您需要循环直到最后一个元素之前的元素,因为您检查下一个元素。
标签: javascript arrays string sorting