[英]How to remove empty object in array?
我正在嘗試從以下結構中刪除空的 object {}。
data = [{
"total" : "value",
"status" : "statusVal",
"recs" : [{
"total" : "value",
"region" : "name",
"recs" : [{},{
"recs" : [{
"recs" : [{
"value" : "a",
"label" : "fn"
}]
}]
}]
}]
}]
這是我的 JavaScript 代碼,我在其中處理數據並嘗試從結果中刪除空的 object。
var result = json.parse(data);
for(var i=0;i<result.length;i++){
if(result[i].hasOwnProperty("recs")){
var fset = result[i].recs;
for(var j=0;j<fset.length;j++){
if(fset[j].recs === undefined || fset[j].recs === null){
delete fset[j].recs;
}
if(fset[j].hasOwnProperty("recs")){
var sset = fset[i].recs;
for(var k=0;k<sset.length;k++){
var tset = sset[i].recs;
if(sset[k].hasOwnProperty("recs")){
for(var z=0;z<tset.length;z++){
if(tset[z].hasOwnProperty("recs")){
// logic to push
}
}
}
}
}
}
}
}
我嘗試檢查 null 和未定義以及屬性檢查布爾為 false。 由於空 {} 總是返回長度為 1,這也被排除在外。 我被困在這里處理空 object 的刪除。
上面的代碼正在刪除整個 recs 節點。 你能幫我找到我缺少的東西嗎?
檢查Object.keys()
的長度,看 object 是否為空。
Object.keys(fset[j].recs).length === 0
var data = [{ "total": "value", "status": "statusVal", "recs": [{ "total": "value", "region": "name", "recs": [{}, { "recs": [{ "recs": [{ "value": "a", "label": "fn" }] }] }] }] }] function removeEmpty(ary) { ary.forEach((item, index) => { if (Object.keys(item).length === 0) { ary.splice(index, 1); } else if (item.recs && item.recs.length > 0) removeEmpty(item.recs) }); } removeEmpty(data) console.log(data)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.