如何检查对象是否在JavaScript中具有属性?
考虑:
x = {'key': 1};
if ( x.hasOwnProperty('key') ) {
//Do this
}
Run Code Online (Sandbox Code Playgroud)
这是最好的方法吗?
我是使用react.js的新手,我正在尝试编写一个可重用的组件,该组件具有传递给它的可选属性.在组件中,该可选属性使用meteor从db中提取数据,然后我想检查返回对象上是否存在属性(任务中是否存在parent_task),如果存在,则添加链接.这似乎相当简单,但我一直在收到错误.有没有人对我可能缺少什么有任何建议?我缺少一个jsx陷阱吗?
<Header task={params.task_id} /> // rendering component with property
// Task List Header
Header = React.createClass({
mixins: [ReactMeteorData],
getMeteorData() {
var handle = Meteor.subscribe('tasks');
return {
taskLoading: ! handle.ready(),
task: Tasks.findOne({_id: this.props.task})
}
},
getParentTaskLink() {
if (!this.data.taskLoading) {
var current_task = this.data.task;
if (parent_task in current_task) { // or current_task.hasOwnProperty(parent_task)
console.log("parent_task exists!");
}
}
},
render() {
return (
<div className="bar bar-header bar-calm">
{this.getParentTaskLink()} // eventually return anchor element here
<h1 className="title">Hello World</h1>
</div>
)
}
});
Run Code Online (Sandbox Code Playgroud) 我试图访问JavaScript对象中的某个成员.为了做到这一点,我需要尝试几个关键值.
例如,Object['text/html']它将为我提供HTML文档的导出链接.但是,并非此类型的每个对象都具有text/html密钥对值.
在Python中,我将使用Try-Catch块解决此问题,但有KeyError例外.如果我可以在javascript中执行类似的操作,就像在Try-Catch块中使用异常一样,这将是很棒的.
但是,如果存在替代品而不是try catch块,那么确实达到了相同的最终目标,我也想了解它们.
我宁愿使用异常而不是使用函数.我这样做是因为text/html密钥可能不存在,但应该存在.一个例外似乎更适合这种情况