Javascript函数中的布尔返回

Javascript函数中的布尔返回,javascript,Javascript,今天我正在为hack reactor做一个教程,这是一个编码测试 创建一个isPresent变量, 将其指定给对象在关键点处的值与未定义的值之间的比较, 返回isPresent变量 这是我的密码 function isPropertyPresent(object, key) { var isPresent = (object['key'] === undefined); return isPresent } 我在开发者控制台中逐行运行它,一切正常,但每当我在函数中使用它时,它总是返回

今天我正在为hack reactor做一个教程,这是一个编码测试

创建一个isPresent变量, 将其指定给对象在关键点处的值与未定义的值之间的比较, 返回isPresent变量

这是我的密码

function isPropertyPresent(object, key) {

  var isPresent = (object['key'] === undefined);
  return isPresent
}

我在开发者控制台中逐行运行它,一切正常,但每当我在函数中使用它时,它总是返回“true”,是否有我没有注意到的属性,我真的很困惑?

键是一个变量,所以不要在其周围加引号并使用==运算符,根据您的函数名;删除函数中不必要的isPresent变量,使代码更简洁

function isPropertyPresent(object, key) {
  return object[key] !== undefined;
}

object['key']
正在查找一个按字面意思命名为'key'的属性。您需要查找在
key
参数中传递的属性,即
object[key]

var objectWithKeyProperty={
密钥:“secretKey”,
其他道具:“你好,世界”
}
var objectWithoutKeyProperty={
其他道具:“你好,世界”
}
函数isPropertyPresentOriginal(对象、键){
变量isPresent=(对象['key']==未定义);
返回显示
}
函数isPropertyPresentModified(对象,键){
变量isPresent=(对象[键]==未定义);
返回显示
}
log(isPropertyPresentOriginal(objectWithKeyProperty‘不重要,未使用此参数’)//true
log(isPropertyPresentOriginal(objectWithoutKeyProperty‘无所谓,未使用此参数’)//false
log(isPropertyPresentModified(objectWithKeyProperty,'key'))//true

log(isPropertyPresentModified(objectWithoutKeyProperty,'key'))//false
删除
'key'周围的引号。艾<代码>(对象[键]==未定义)