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);