Javascript 查找给定字符串的每个字母的索引,如果该字母重复,则返回相同的索引

Javascript 查找给定字符串的每个字母的索引,如果该字母重复,则返回相同的索引,javascript,string,if-statement,conditional-statements,Javascript,String,If Statement,Conditional Statements,我试图解决一个相当简单的kata问题,发现自己陷入了一个条件问题。我试图为一个字符串返回相同的整数,该字符串多次具有相同的字母 例如,对于字符串hello,它应该返回0.1.2.2.3 这是我目前的代码: const wordPattern = word => { word = word.toLowerCase(); let index =[] for(i=0; i<word.length; i++){ index.includes(i) ? word(i)

我试图解决一个相当简单的kata问题,发现自己陷入了一个条件问题。我试图为一个字符串返回相同的整数,该字符串多次具有相同的字母

例如,对于字符串
hello
,它应该返回
0.1.2.2.3

这是我目前的代码:

const wordPattern = word => {
  word = word.toLowerCase();
  let index =[]
  
  for(i=0; i<word.length; i++){
    index.includes(i) ? word(i) === index[i] : index.push(i)
  }
    
  return index 
}
const wordPattern=word=>{
word=word.toLowerCase();
let index=[]

对于(i=0;i我将使用对象,因为它使我能够将键(字母)映射到值(分配给该字母的整数):

const wordPattern=word=>{
word=word.toLowerCase();
常量映射={}
常量输出=[]
设计数器=0
对于(i=0;i{
word=word.toLowerCase();
常量映射={}
常量输出=[]
设计数器=0
for(单词的常量){
如果(!map[l]){
map[l]=计数器
柜台++
}
output.push(映射[l])
}
返回输出
}

我会使用对象,因为它使我能够将键(字母)映射到值(分配给该字母的整数):

const wordPattern=word=>{
word=word.toLowerCase();
常量映射={}
常量输出=[]
设计数器=0
对于(i=0;i{
word=word.toLowerCase();
常量映射={}
常量输出=[]
设计数器=0
for(单词的常量){
如果(!map[l]){
map[l]=计数器
柜台++
}
output.push(映射[l])
}
返回输出
}

您可以使用常规if语句在循环中向前看

const wordPattern=word=>{
word=word.toLowerCase();
设指数=[];
//因为你不想让单词字母索引,
//您可以创建单独的索引
设c=0;

对于(设i=0;i,您可以使用常规if语句在循环中向前看

const wordPattern=word=>{
word=word.toLowerCase();
设指数=[];
//因为你不想让单词字母索引,
//您可以创建单独的索引
设c=0;

因为(让i=0;我不应该是
0,1,2,2,4
)看起来像是招聘任务或实践(课程)任务,您刚刚要求回答。您尝试过自己解决它吗?您尝试过什么?您失败在哪里?首先尝试学习。嗨,Adam,是的,正如您在上面的代码中所看到的,我做了,而且是的,测试示例应返回0,1,2,2,3。它不应该是
0,1,2,2,4
?看起来像是招聘任务或练习(课程)任务,您刚刚要求回答。您尝试过自己解决它吗?您尝试过什么?您失败在哪里?尝试先学习。嗨,Adam,是的,正如您在上面的代码中所看到的,我做了,而且是的,测试示例应该返回0,1,2,2,3。非常感谢!映射是一种很好的方法,我没有考虑它!非常感谢!映射是一种很好的方法方法,我没想过!谢谢你,塔克!它看起来很简单,这样说吧!感谢时间和解释:)好吧!如果答案对你有帮助,请在设置中接受它;)谢谢,塔克!它看起来很简单,这样说吧!感谢时间和解释:)Wellcome!如果答案对您有帮助,请在设置中接受它;)