Javascript删除数组中的空值
我的要求是删除数组中的空值 我有一个数组,如下所示Javascript删除数组中的空值,javascript,arrays,Javascript,Arrays,我的要求是删除数组中的空值 我有一个数组,如下所示 addresses = { status: true accounts: [6] 0: { account_id: "100004069844270facebook" account_name: "Lal Mohan T" account_type: "facebook" } - 1: { account_id: "bdc33
addresses = {
status: true
accounts: [6]
0: {
account_id: "100004069844270facebook"
account_name: "Lal Mohan T"
account_type: "facebook"
} -
1: {
account_id: "bdc33d8ca941b8f00c2a4e046ba44761twitter"
account_name: "Minu Jose"
account_type: "twitter"
} -
2: {
account_id: "ec466c09fd62993ade48c6c4bb8d2da7facebook"
account_name: "Jijo John"
account_type: "facebook"
} -
3: {
account_id: "138115932930527facebook"
account_name: "TVInfo AMT"
account_type: "facebook"
}
4: {}
5: {}
6: {}
}
如何从此数组中删除{}元素
我尝试过数组过滤器,但在我的情况下它不起作用
addresses = addresses .filter(function (n) { return n !== undefined });
请帮我解决这个问题,非常感谢你的帮助。谢谢您既没有处理
null
值,也没有处理未定义的值。似乎您有一个对象,其中包含其他对象。其中一些包含的对象可能为空,您需要明确检查:
Object.keys( addresses ).filter(function( v ) {
return typeof addresses[ v ] !== 'object' || Object.keys( addresses[ v ] ).length !== 0;
});
首先,地址不是数组,它是一个对象({}
=object,[]
=array)
{}
并不意味着未定义
,而是一个空对象。测试其是否为空的最简单方法是在筛选方法中使用Object.keys()
function( value ) { return !(typeof value === "object" && Object.keys( value ).length === 0 ); }
如果要从实际不是帐户(但为空)的帐户中删除元素,则应测试帐户的属性,而不是元素本身
accounts = accounts.filter(function (n) { return n.account_id !== undefined });
这不是一个未定义的值。该对象中没有数组。@MihaiStancu如何删除{}值?很难说对象的实际结构是什么,因为这不是有效的JavaScript。非常感谢您的帮助。它真的帮助了我