[英]Cannot delete object property in Javascript
obj = {a: []}
I want to delete obj.a
. 我想删除
obj.a
。 This code works 此代码有效
if(!obj.a.length)
delete obj.a //work
This is not 这不是
function _delete(o) {
if(!o.length)
delete o
}
_delete(obj.a) //not work
Any way to make it works? 什么办法能让它的工作原理?
You can't delete []
, which is all that you pass to the function. 您无法删除
[]
,这是您传递给函数的全部内容。
You can create a function like 您可以创建一个像
function _delete(obj, prop) {
if (obj[prop] && ! obj[prop].length) delete obj[prop];
}
and call it with 并用
_delete(obj, 'a');
I'd also add a check for what the property is, and if it exists at all. 我还要添加一个关于属性是什么,以及是否存在的检查。 As you seem to target an array, add a check if it's an array that gets passed:
当您似乎以数组为目标时,添加检查是否是通过的数组:
function _delete(obj, prop) {
if (Array.isArray(obj[prop]) && ! obj[prop].length) delete obj[prop];
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.