javascript - 在 Javascript 中对对象属性执行字符串方法

标签 javascript loops object

每当我尝试在 Javascript 中对包含对象属性值的变量执行字符串操作时,我都会收到有关解释器无法找到我尝试用于该对象的任何方法的错误:

var arrOfEntries = {};

arrOfEntries["name1"] = "Jane" ;
arrOfEntries["age1"] = "40" ;
arrOfEntries["name2"] = "Kathy" ;
arrOfEntries["age2"] = "35" ;
arrOfEntries["name3"] = "Mary" ;
arrOfEntries["age3"] = "23" ;
arrOfEntries["name4"] = "Donna" ;
arrOfEntries["age4"] = "32" ;

var result = ' ';
for (prop in arrOfEntries) {
    var tempVar = String(prop) /*/this line was added as an attempt to force the property into the type String, but does not work*
    if (tempVar.includes("name"))
        result += tempVar
    }

在这种情况下,我只想检查该对象的每个属性的名称中是否存在字符串“name”,然后仅收集这些属性以进行进一步的操作。我在这里缺少什么?

最佳答案

prop 已经是一个字符串。你应该只需要这个:

for (prop in arrOfEntries) {
    if (arrOfEntries.hasOwnProperty(prop) && prop.indexOf("name") !== -1) {
        result += arrOfEntries[prop];
    }
}

我添加了 hasOwnProperty,这样您就不会错误地尝试添加一个已经存在于 Object 类型上的方法。

仅供引用:arrOfEntries 是一个对象(带有字符串/值键),而不是数组 - JavaScript 类型有一些区别。

关于javascript - 在 Javascript 中对对象属性执行字符串方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36203586/

相关文章:

java - 如何打破 Java 中的嵌套循环?

Java 变量别名解决方法

javascript - 对工作日的对象进行排序,例如星期日、星期一、...、星期六

javascript - 对象文字属性值简写与 `this` 不兼容

javascript - 为什么 ReSharper 在函数声明之前警告它已被使用?

java - 使用数组将数字相加并垂直打印总和

java - 在循环java中打印计数

java - 修改 String/Integer 对象并检查它是否影响以该对象作为参数的类对象

javascript - jQuery 显示 div 不起作用

javascript - 实现 CodeMirror 语法荧光笔