javascript - 如何迭代字符串并查明它是否在对象文字中可用?

标签 javascript object for-loop literals hasownproperty

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 ..要获取 char ,你应该使用 s[i] ,字符串连接是 += 而不是 + =

我是说

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

下面的代码为您提供了预期的结果

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(s[i])) {
        fin += leet[s[i]];
    } else {
        fin += i
    }
}
alert(fin);

Working JS Fiddle

关于javascript - 如何迭代字符串并查明它是否在对象文字中可用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16432633/

相关文章:

javascript - 根据持续时间计算月份和年份

javascript - 如何将字符串转换为数字?

javascript - 在 foreach 内部创建一个对象

php - 循环遍历动态输入框并插入mysql数据库

c++ - C 多循环 for() 基础知识

javascript - 如何在 Typescript 中添加多个断言

javascript - 如何使用 JavaScript XUL 在警报或 propmts.alert 中添加图像

javascript - 如何阻止函数被视为 javascript 对象中的属性?

Java - 调用ArrayList中对象的方法

Pascal 中的 Java 替代代码