我想创建一个带有两个参数的JS函数:一个Object和一个属性。如果对象具有给定属性,则该函数应将其从对象中删除,并返回true。
这是我所拥有的,但它在测试用例中不断返回false。我相信,因为' obj.prop'部分没有正常捕捉 - 但不确定原因。
非常感谢任何帮助!
function removeProperty(obj, prop) {
if ( obj.prop ) {
delete obj.prop;
return true;
} else {
return false;
}
}
答案 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;
}
}