所以我有这个功能,如果有什么东西,我希望吐出一些对象信息。但我被卡住了。谁知道问题是什么?
function ifExist(property) {
if ( randomObj.property === "" ) {
message += "";
} else {
message += "<span class='propString'>" + randomObj.property + "</p>";
}
return message;
}
ifExist(citation);
ifExist(year);
正手感谢!
答案 0 :(得分:2)
使用括号表示法来引用更改键:randomObj[property]
这应该允许您使用动态属性名称从对象上的键中提取值。
使用randomObj.property
(点表示法)会在property
上找到名为randomObject
的键。
此外,请务必将密钥作为字符串传递:
ifExist("citation");
ifExist("year");
正如OvérFlôwz所提到的,在尝试处理您无法保证存在的任何数据之前,确保您的对象上存在密钥也是一个明智的想法。
答案 1 :(得分:1)
尝试:
function ifExists(obj, property) {
return obj.hasOwnProperty(property);
}
var obj = { myprop: 'I got this.' };
console.log(ifExists(obj, 'myprop')); // also notice quotes.
答案 2 :(得分:0)
首先,你需要确定你在检查什么:某个对象上的属性是否完全存在,或者它等于null
还是空(""
)或undefined
或{{ 1}}或false
取决于其类型。
在第一种情况下使用0
。
对于所有其他情况(当您知道该属性存在时):
object.hasOwnProperty(property)
最好不要在标记属性中使用单引号。正确的方法是:
if (!object[property]){
//...
}
或者你可以逃脱它:
var message += '<span class="propString">';