Luv*_*ias 1 javascript object node.js
obj = {a: []}
Run Code Online (Sandbox Code Playgroud)
我想删除obj.a
.这段代码有效
if(!obj.a.length)
delete obj.a //work
Run Code Online (Sandbox Code Playgroud)
这不是
function _delete(o) {
if(!o.length)
delete o
}
_delete(obj.a) //not work
Run Code Online (Sandbox Code Playgroud)
有什么方法可以使它有效吗?
您无法删除[]
,这是您传递给该功能的全部内容.
你可以创建一个像这样的函数
function _delete(obj, prop) {
if (obj[prop] && ! obj[prop].length) delete obj[prop];
}
Run Code Online (Sandbox Code Playgroud)
并称之为
_delete(obj, 'a');
Run Code Online (Sandbox Code Playgroud)
我还会添加一个检查属性是什么,以及它是否存在.当你似乎以数组为目标时,添加一个检查它是否是一个传递的数组:
function _delete(obj, prop) {
if (Array.isArray(obj[prop]) && ! obj[prop].length) delete obj[prop];
}
Run Code Online (Sandbox Code Playgroud)