为什么这不起作用?实现删除属性函数,该函数接受对象和属性名称,如果匹配则删除它,如果不匹配则返回 true
function removeProperty(obj, prop) {
const keys = Object.keys(obj)
for (const key of keys) {
if (key === obj[prop]) {
delete obj[prop]
return true
}
}
return false
}
最佳答案
因为 obj[prop]
是值。将 key
与 prop
进行比较:
function removeProperty(obj, prop) {
const keys = Object.keys(obj)
for (const key of keys) {
if (key === prop) {
delete obj[prop]
return true
}
}
return false
}
但是,由于对象属性是唯一的,因此您不需要迭代它们。使用in
operator检查属性是否存在:
function removeProperty(obj, prop) {
if (prop in obj) {
delete obj[prop]
return true
}
return false
}
关于javascript - 为什么这不起作用(删除与对象属性匹配的属性),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59636882/