JS函数无法识别对象的属性

时间:2017-07-28 09:59:21

标签: javascript

我想创建一个带有两个参数的JS函数:一个Object和一个属性。如果对象具有给定属性,则该函数应将其从对象中删除,并返回true。

这是我所拥有的,但它在测试用例中不断返回false。我相信,因为' obj.prop'部分没有正常捕捉 - 但不确定原因。

非常感谢任何帮助!

function removeProperty(obj, prop) {

  if ( obj.prop ) {

     delete obj.prop;
     return true;    

  }  else {

     return false;
  }
}

2 个答案:

答案 0 :(得分:1)

像这样改变。你传递的变量不是property

的直接名称
 function removeProperty(obj, prop) {
  if (obj[prop]) {
    delete obj[prop];
    return true;
  } else {
    return false;
  }
}

答案 1 :(得分:1)

您使用点语法获取属性 - > obj.prop

以这种方式使用它实际上是在询问对象的名为prop的属性

{
    prop: 'something'
}

您应该使用括号表示法 - > obj[prop]

function removeProperty(obj, prop) {
  if ( obj[prop] ) {
     delete obj[prop];
     return true;    
  }  else {
     return false;
  }
}