Javascript 如何迭代一个字符串,并找出它是否在对象文本中可用?

Javascript 如何迭代一个字符串,并找出它是否在对象文本中可用?,javascript,object,for-loop,literals,hasownproperty,Javascript,Object,For Loop,Literals,Hasownproperty,为什么我会出错 对象字符串的连接运算符是+=而不是+= 对于获取fin根据s中的内容获取值,ypur代码应如下所示 var leet = { h: 1, e: 2, r: 3, o: 4, l: 5 }; var s = "hello"; var fin = ""; for (var i in s) { if (leet.hasOwnProperty(i)) { fin + = leet[i]; } else {

为什么我会出错

对象
字符串
的连接运算符是
+=
而不是
+=

对于获取
fin
根据
s
中的内容获取值,ypur代码应如下所示

var leet = {
    h: 1,
    e: 2,
    r: 3,
    o: 4,
    l: 5
};

var s = "hello";
var fin = "";

for (var i in s) {
    if (leet.hasOwnProperty(i)) {
        fin + = leet[i];
    } else {
        fin + = i
    }
}
console.log(fin);

你的i值是0,1,2,3,4。。要获取字符,应该使用s[i]和字符串concat is+=not+=

我是说

for (var i in s) {
    if (leet.hasOwnProperty(s[i])) {
        fin += leet[s[i]];
    } 
}
下面的代码给出了预期的结果

for (var i in s)
{
   alert(i);   // Gives 0,1,2,3,4
   alert(s[i]);  // Gives h,e,l,l,o
}

编辑为fin+=leet[i]fin+=i通过删除其中的空格,现在您可以得到结果,因为“01234”

串联语法不正确。它应该是没有空格的
+=
。您的错误是什么…?不要在
循环中使用
for来迭代字符串。使用
for(var i=0;i
并使用
s.charAt(i)
获取信件。根据您在输出中实际需要的内容,这里有一些有用的东西:@FaisalSayed-谢谢!就是这个。是的,这确实很有帮助!单击链接人并查看输出..您没有眼睛吗…?此代码的输出是12554..单击很棒!就是它!谢谢you@user1223844我也是,我也不知道他解释了否决投票的原因。。即使现在,你也可以接受。@user1223844单击我答案左侧的勾号。我没有否决投票,但有人这样做的原因可能是因为这条流行的线索:……在这种情况下,我看不到它的使用可能会出错,但如果你选择在更复杂的示例中使用这种技术,你就可以uld遇到了问题。虽然您只在“has-Own”属性上执行代码,但它仍然在原型链上的每个属性/方法上循环。常规的for(1=0;ivar leet = { h: 1, e: 2, r: 3, o: 4, l: 5 }; var s = "hello"; var fin = ""; for (var i in s) { if (leet.hasOwnProperty(s[i])) { fin += leet[s[i]]; } else { fin += i } } alert(fin);