JSON.stringify(array.filter(function(el) {
// keep element if it's not an object, or if it's a non-empty object
return typeof el != "object" || Array.isArray(el) || Object.keys(el).length > 0;
});
var aryAry = [[{prop: 'value'},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{}]];
var a = aryAry[0], r = [];
for(var i=0,l=a.length; i<l; i++){
var n = 0, o = a[i];
for(var q in o){
n++;
}
if(n > 0){
r.push(o);
}
}
console.log(r);
9条答案
按热度按时间sxissh061#
7xllpg7q2#
在字符串化之前,可以使用
Array.prototype.filter
删除空对象。5m1hhzi43#
我建议使用以下代码:
我没有使用Object.keys(value).length!== 0,因为它不仅删除空对象**{ },而且删除空数组[ ]**。如果只想删除空对象,请使用上面的方法。
iugsix8n4#
如果你的对象数组是-
然后使用下面的行删除空白对象--
vnzz0bqm5#
更易于理解:
nx7onnlm6#
出于渐进增强的原因,我会这样做:
dphi5xsq7#
gpnt7bae8#
如果你想让这篇文章更有可读性,那么我建议结合lodash:
这将过滤空对象和未定义对象。
fnvucqvd9#
arr =.过滤器(arr,v =〉.密钥(v).长度!== 0);