javascript - 返回字符串的第一个非重复字符
问题描述
在我的代码的第一块中,我有一个' if '语句不能正常工作,我不知道为什么。
使用参数 'hous' 时,应输入第一个 'if' 语句并返回 0。它改为返回 -1。
var firstUniqChar = function(s) {
for (let i = 0; i < s.length; i++){
let letter = s[i];
// console.log('s[i]: ' + letter);
// console.log(s.slice(1));
// console.log( 'i: ' + i);
if ((i = 0) && !(s.slice(1).includes(letter))) {
return 0;
}
if ((i = s.length - 1) && !(s.slice(0, i).includes(letter))) {
return 1;
}
if(!(s.slice(0, i).includes(letter)) && !(s.slice(i + 1).includes(letter))) {
return 2;
}
}
return -1;
};
console.log(firstUniqChar("hous"));
解决方案
这是编写函数的另一种方式:
const firstUniqChar = s => [...s].filter(c=>!(s.split(c).length-2))[0] || -1;
console.log(firstUniqChar("hous"));
console.log(firstUniqChar("hhoous"));
console.log(firstUniqChar("hhoouuss"));
推荐阅读
- python - 在创建之前访问 djagno 模型
- c# - 仅当文档包含具有 lucene.net 中的值的字段时才过滤掉文档
- youtube - 通过使用订单“日期”,无法使用 YouTube 数据 API v3 获得正确的 YouTube 搜索结果
- java - java.io.IOException:无法将 RPC 6769565832902301993 发送到 /10.128.226.240:45541:java.lang.AbstractMethodError
- r - 具有随机截距和随机斜率的重复测量模型
- c# - WPF 自定义文本框 UserControl 扩展 .NetCore
- mongodb - 在 ubuntu 中将 .zip 文件导入 mongoDB
- javascript - window.location.reload() 只刷新主页,为什么不刷新专门使用angular的其他页面?
- javascript - FFmpeg 将视频结果流式传输到 net::ERR_CONTENT_LENGTH_MISMATCH 206
- graphviz - 有没有办法让边长从节点的边界开始?