每当我尝试在 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/