簡體   English   中英

如何從javascript對象中刪除空值、未定義值

[英]How to remove null, undefined value from javascript object

這是我的對象。 我正在嘗試刪除空數組、空字符串、null、未定義。

 let result = {
  a : [],
  b: undefined,
  c: null,
  d: NaN,
  e: {},
  f:{test: undefined, tes1: null,tes2:NaN},
  g:{name :{x:undefined, y:"s", z: null}},
  x:"sujon",
  y:"",
}

現在,我只能使用此代碼從對象中刪除未定義的值;

const removeEmpty = (obj) => {
  Object.keys(obj).forEach(key => {
    if (obj[key] && typeof obj[key] === 'object') removeEmpty(obj[key]);
    else if (obj[key] === undefined) delete obj[key];
  });
  return obj;
};

let res = removeEmpty(result) 

console.log(res)

我的預期結果是這樣的:

   let result = {
      g:{name :{y:"s"}},
      x:"sujon",
    }

我怎樣才能得到我的預期結果?

在遞歸調用之后,如果結果是一個空對象(沒有自己的屬性),將其刪除:

 let result = { a : [], b: undefined, c: null, d: NaN, e: {}, f:{test: undefined, tes1: null,tes2:NaN}, g:{name :{x:undefined, y:"s", z: null}}, x:"sujon", y:"", z:0, } const removeEmpty = (obj) => { Object.keys(obj).forEach(key => { if (obj[key] && typeof obj[key] === 'object') removeEmpty(obj[key]); if ( (!obj[key] && obj[key] !== 0) || (typeof obj[key] === 'object' && Object.keys(obj[key]).length === 0) ) { delete obj[key]; } }); return obj; }; let res = removeEmpty(result) console.log(res)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM