亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

js如何刪除對象/數(shù)組中null、undefined、空對象及空數(shù)組實例代碼

 更新時間:2022年09月20日 14:46:11   作者:EncodingAESKey  
JS中數(shù)組是我們較為常用的一種數(shù)據(jù)結(jié)構(gòu),下面這篇文章主要給大家介紹了關(guān)于js如何刪除對象/數(shù)組中null、undefined、空對象及空數(shù)組的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下

如下,對于一個多層嵌套的數(shù)據(jù)結(jié)構(gòu):例如

要做的就是刪除所有value為空,數(shù)組為空,對象為空的字段

const querys = {
  name: '測試',
  httpMethod: '',
  httpHeaders: [
    {
      key: 'Accept',
      value: 'test',
    },
  ],
  restParams: [
    {
      key: '',
      value: '',
    },
  ],
  body: {
    bodyType: '',
    formDataList: [
      {
        contentType: '',
        key: '',
        value: '',
      },
    ],
  },
  microtask: {
    bodyType: 'javascript',
    formDataList: [
      {
        key: '2',
        value: '4',
      },
    ],
  },
};

通過處理,希望得到 以下結(jié)構(gòu):

{
  name: '測試',
  httpHeaders: [
    {
      key: 'Accept',
      value: 'test',
    },
  ],
  microtask: {
    bodyType: 'javascript',
    formDataList: [
      {
        key: '2',
        value: '4',
      },
    ],
  },
}

第一:過濾各種空數(shù)據(jù)的字段,比如,string、null、undefined、[]、{}

使用這個方法:(注意調(diào)用兩遍)

export const delEmptyQueryNodes = (obj = {}) => {
  Object.keys(obj).forEach((key) => {
    let value = obj[key];
    value && typeof value === 'object' && delEmptyQueryNodes(value);
    (value === '' || value === null || value === undefined || value.length === 0 || Object.keys(value).length === 0) && delete obj[key];
  });
  return obj;
};

調(diào)用方法:

let res = delEmptyQueryNodes(delEmptyQueryNodes(params));

res就是過濾之后你要的數(shù)據(jù)了

第二:刪除對象中值為空或null或undefined的所有屬性(簡單方法)

1、首先寫一個方法判斷當前值為空

function isEmpty(obj) {
  if (typeof obj === 'undefined' || obj === null || obj === '') return true;
  return false
}

2、刪除對象中值為空的所有屬性

var formData = {
   a: "duo",
   b: 0,
   c: undefined,
   d: null,
   e: null
}
 
function preProcessData(formData) {
  Object.keys(formData).forEach(item=>{
    if(this.isEmpty(formData[item])) {
      delete formData[item];
    }
  })
  return formData;
}

第三:ES6-使用js刪除對象中帶有null和undefined值的數(shù)據(jù)

把對象中的空值去掉的需求,用于提交表單,但是antd表單通過form.validateFields()方法獲取到的值會存在出現(xiàn)undefined或null的情況,本次分享的方法簡單實用,比較優(yōu)雅。

    ------->>>>>>    

代碼:

const params = Object.keys(data)
	.filter((key) => data[key] !== null && data[key] !== undefined)
	.reduce((acc, key) => ({ ...acc, [key]: data[key] }), {});

代碼的原理是通過Object.keys遍歷對象中的key值,通過filter方法篩選出值不為null和undefined的數(shù)據(jù)。這個方法中最靈魂的地方在于用到了reduce高階函數(shù),reduce返回值的第二個參數(shù)傳入{}初始值,通過reduce內(nèi)部循環(huán),將符合條件的數(shù)組中的屬性和屬性值添加到對象中去,最終返回出一個我們想要的不帶空值的對象。 

總結(jié)

到此這篇關(guān)于js如何刪除對象/數(shù)組中null、undefined、空對象及空數(shù)組的文章就介紹到這了,更多相關(guān)js刪除對象數(shù)組中null、undefined、空對象及空數(shù)組內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 小程序簡單兩欄瀑布流效果的實現(xiàn)

    小程序簡單兩欄瀑布流效果的實現(xiàn)

    這篇文章主要介紹了小程序簡單兩欄瀑布流效果的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-12-12
  • 基于JavaScript實現(xiàn)動態(tài)添加刪除表格的行

    基于JavaScript實現(xiàn)動態(tài)添加刪除表格的行

    又一個動態(tài)控制表格的效果,用JavaScript動態(tài)生成表格行、表格列,以及還可動態(tài)刪除這些行列,行等,運行代碼后,點擊對應(yīng)的功能按鈕,即可實現(xiàn)對應(yīng)的表格操作功能,接下來通過代碼實例給大家介紹JavaScript實現(xiàn)動態(tài)添加刪除表格的行,需要的朋友參考下
    2016-02-02
  • JavaScript中播放音頻文件的幾種常用方法

    JavaScript中播放音頻文件的幾種常用方法

    JS可以用來播放多種聲音文件,包括常見的mp3、wav等格式,這篇文章主要給大家介紹了關(guān)于JavaScript中播放音頻文件的幾種常用方法,需要的朋友可以參考下
    2023-10-10
  • Javascript與flash交互通信基礎(chǔ)教程

    Javascript與flash交互通信基礎(chǔ)教程

    說明: 略作修改,主要是一些很初級的操作; 又很多相似的文章,不過這個很權(quán)威
    2008-08-08
  • JavaScript構(gòu)造函數(shù)原理及實現(xiàn)流程解析

    JavaScript構(gòu)造函數(shù)原理及實現(xiàn)流程解析

    這篇文章主要介紹了JavaScript構(gòu)造函數(shù)原理及實現(xiàn)流程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-11-11
  • ES6對象操作實例詳解

    ES6對象操作實例詳解

    這篇文章主要介紹了ES6對象操作,結(jié)合實例形式詳細分析了ES6對象創(chuàng)建、賦值、比較、合并等相關(guān)操作技巧與注意事項,需要的朋友可以參考下
    2020-05-05
  • 關(guān)于樹形菜單 Checkbox的全選

    關(guān)于樹形菜單 Checkbox的全選

    js樹形菜單全選
    2008-07-07
  • 關(guān)于ECharts設(shè)置x軸刻度間隔的兩種方式

    關(guān)于ECharts設(shè)置x軸刻度間隔的兩種方式

    這篇文章主要介紹了關(guān)于ECharts設(shè)置x軸刻度間隔的兩種方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • 深入理解JavaScript內(nèi)存管理和GC算法

    深入理解JavaScript內(nèi)存管理和GC算法

    這篇文章主要介紹了深入理解JavaScript內(nèi)存管理和GC算法,下面文章主要講解JavaScript的垃圾回收機制以及常用的垃圾回收算法;還講解了V8引擎中的內(nèi)存管理,最后介紹了Performance工具如何使用
    2022-07-07
  • 基于Bootstrap的Metronic框架實現(xiàn)頁面鏈接收藏夾功能

    基于Bootstrap的Metronic框架實現(xiàn)頁面鏈接收藏夾功能

    本文給大家介紹基于Metronic的Bootstrap開發(fā)框架實現(xiàn)頁面鏈接收藏夾功能,非常不錯,具有參考借鑒價值,感興趣的朋友一起學習吧
    2016-08-08

最新評論