最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

如何從JavaScript數(shù)組中刪除空對象

 更新時間:2023年05月06日 15:36:50   作者:跡憶客  
JS中數(shù)組是我們較為常用的一種數(shù)據(jù)結(jié)構(gòu),下面這篇文章主要給大家介紹了關(guān)于如何從JavaScript數(shù)組中刪除空對象的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下

從數(shù)組中刪除空對象:

  • 使用 Array.filter() 方法遍歷數(shù)組。
  • 將每個對象傳遞給 Object.keys() 方法并檢查鍵的長度是否不等于 0。
  • filter 方法將返回一個不包含空對象的新數(shù)組。
const arr = [{}, {id: 1}, {}, {id: 2}, {}];
const results = arr.filter(element => {
  if (Object.keys(element).length !== 0) {
    return true;
  }
  return false;
});
// ??? [{id: 1}, {id: 2}]
console.log(results);

JavaScript 中的數(shù)組中刪除空對象

我們傳遞給 Array.filter 方法的函數(shù)被數(shù)組中的每個元素(對象)調(diào)用。

如果函數(shù)返回真值,則 filter 方法將該元素添加到結(jié)果數(shù)組。

Object.keys 方法返回一個包含對象鍵的數(shù)組。

console.log(Object.keys({})); // ??? []
console.log(Object.keys({id: 1})); // ??? ['id']

如果對象沒有鍵值對,則該方法返回一個空數(shù)組。

如果它至少有 1 個鍵值對,我們只返回 true 并將對象添加到結(jié)果數(shù)組。

請注意 ,如果使用空數(shù)組 [] 或數(shù)字 0 調(diào)用 Object.keys(obj).length 方法將返回 0。

console.log(Object.keys(0).length); // ??? 0
console.log(Object.keys([]).length); // ??? 0

如果我們的數(shù)組包含對象以外的類型,請使用以下方法僅從數(shù)組中刪除空對象。

const arr = [{}, {id: 1}, 'a', 0, {}, []];
const results = arr.filter(element => {
  if (
    typeof element === 'object' &&
    !Array.isArray(element) &&
    Object.keys(element).length === 0
  ) {
    return false;
  } else {
    return true;
  }
});
// ??? [{id: 1}, 'a', 0, []]
console.log(results);

JavaScript 中的數(shù)組中刪除空對象2

我們使用 &&(與)運算符來指定必須滿足所有條件才能運行 if 塊。

我們首先檢查元素是否有對象類型,但這還不夠,因為 JavaScript 數(shù)組也有對象類型。

console.log(typeof []) // ??? 'object'

然后我們檢查元素不是數(shù)組并且對象是空的。

如果滿足所有這些條件,我們就知道我們有一個空對象,不應(yīng)將其添加到結(jié)果數(shù)組中,因此我們返回 false。

在所有其他情況下,數(shù)組元素不是空對象并被添加到新數(shù)組中。

大多數(shù)情況下,在數(shù)組中存儲多種不同類型是一種反模式。 如果我們需要在同一個數(shù)組中存儲不同的類型,很可能是做錯了什么。

補充:特殊位置刪除

當我們只是需要刪除數(shù)組的首尾數(shù)據(jù)的時候,也可以通過js的pop或者shift方法實現(xiàn),這其實是兩對對應(yīng)的操作:添加與刪除。

push 與pop

通過push我們可以將元素添加到數(shù)組末尾,通過pop將末尾元素去除并返回。

const arr = [1, 2, 3, 4, 5, 6]
// 添加元素到數(shù)組末尾
arr.push(7) // arr: [1, 2, 3, 4, 5, 6, 7]
// 取出數(shù)組末尾元素并返回
const pop_res = arr.pop() // arr: [1, 2, 3, 4, 5, 6], pop_res: 7

unshift與shift

通過unshift可以將元素添加到數(shù)組首部,通過shift可去除數(shù)組頭部元素并返回。

// 將元素添加到數(shù)組開頭
arr.unshift(0) // arr: [0, 1, 2, 3, 4, 5, 6]
// 取出數(shù)組開頭元素并返回
const sft_res = arr.shift() // arr: [1, 2, 3, 4, 5, 6], sft_res = 0

總結(jié)

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

相關(guān)文章

  • js實現(xiàn)數(shù)字每三位加逗號的方法

    js實現(xiàn)數(shù)字每三位加逗號的方法

    這篇文章主要介紹了js實現(xiàn)數(shù)字每三位加逗號的方法,以實例形式講述了js實現(xiàn)數(shù)字每三位加逗號的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-02-02
  • 利用chrome瀏覽器進行js調(diào)試并找出元素綁定的點擊事件詳解

    利用chrome瀏覽器進行js調(diào)試并找出元素綁定的點擊事件詳解

    “工欲善其事,必先利其器” 恩,這句話我覺得說的特別有道理,下面這篇文章主要給大家介紹了關(guān)于利用chrome瀏覽器進行js調(diào)試并找出元素綁定的點擊事件的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2018-09-09
  • Js實現(xiàn)復(fù)選框的全選、全不選反選功能代碼實例

    Js實現(xiàn)復(fù)選框的全選、全不選反選功能代碼實例

    這篇文章主要介紹了Js實現(xiàn)復(fù)選框的全選、全不選和反選,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-02-02
  • BootStrap實現(xiàn)帶關(guān)閉按鈕功能

    BootStrap實現(xiàn)帶關(guān)閉按鈕功能

    這篇文章主要介紹了BootStrap實現(xiàn)帶關(guān)閉按鈕功能,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-02-02
  • javascript單例模式與策略模式實例詳解

    javascript單例模式與策略模式實例詳解

    這篇文章主要介紹了javascript單例模式與策略模式,結(jié)合實例形式詳細分析了javascript單例模式與策略模式基本概念、功能、實現(xiàn)技巧與相關(guān)注意事項,需要的朋友可以參考下
    2023-06-06
  • js實現(xiàn)樓層導(dǎo)航功能

    js實現(xiàn)樓層導(dǎo)航功能

    本文主要介紹了js實現(xiàn)樓層導(dǎo)航功能的示例,具有很好的參考價值,下面跟著小編一起來看下吧
    2017-02-02
  • JavaScript實現(xiàn)圖片輪播特效

    JavaScript實現(xiàn)圖片輪播特效

    這篇文章主要為大家詳細介紹了JavaScript實現(xiàn)圖片輪播特效,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • display和visibility的區(qū)別示例介紹

    display和visibility的區(qū)別示例介紹

    這篇文章主要介紹了display和visibility的區(qū)別,需要的朋友可以參考下
    2014-02-02
  • JS實現(xiàn)Ajax的方法分析

    JS實現(xiàn)Ajax的方法分析

    這篇文章主要介紹了JS實現(xiàn)Ajax的方法,結(jié)合實例形式分析了ajax的概念、原理、js實現(xiàn)與使用方法,需要的朋友可以參考下
    2016-12-12
  • uni-app微信小程序之紅包雨活動完整源碼

    uni-app微信小程序之紅包雨活動完整源碼

    最近公司需求做一個微信紅包雨功能,這里給大家總結(jié)下實現(xiàn)的方法,這篇文章主要給大家介紹了關(guān)于uni-app微信小程序之紅包雨活動的相關(guān)資料,需要的朋友可以參考下
    2024-01-01

最新評論

华池县| 乡城县| 南召县| 杭锦后旗| 旬邑县| 齐齐哈尔市| 华坪县| 祁阳县| 宾阳县| 湖南省| 石城县| 方正县| 台北县| 凤山县| 祁阳县| 乐平市| 吉木乃县| 玉门市| 古田县| 洛南县| 望城县| 准格尔旗| 麦盖提县| 扶绥县| 论坛| 江口县| 安庆市| 德江县| 井陉县| 沾化县| 克拉玛依市| 玉山县| 成安县| 五大连池市| 喜德县| 邯郸县| 鞍山市| 淮南市| 贡山| 增城市| 长宁县|