js:循環查詢數組對象中的某一項的值是否為空

循環檢查?selinfo?數組中的每一個對象,判斷其中的?po_qty?和?price?是否為空(nullundefined?或空字符串?""),可以使用以下幾種方法:


方法1:使用?forEach?循環檢查每一項

const selinfo = this.data.selinfo;selinfo.forEach((item, index) => {if (!item.po_qty || !item.price) {console.log(`第 ${index + 1} 項數據不完整:`, item);// 可以在這里處理不符合條件的數據}
});

判斷邏輯

  • !item.po_qty?→ 檢查?po_qty?是否為?nullundefined0?或?""

  • !item.price?→ 檢查?price?是否為?nullundefined0?或?""

如果你希望?嚴格判斷空值(僅?null?或?undefined,可以改成:

if (item.po_qty == null || item.price == null) {console.log(`第 ${index + 1} 項數據為空:`, item);
}

方法2:使用?some()?檢查是否有任意一項為空

const hasEmptyData = selinfo.some(item => !item.po_qty || !item.price);if (hasEmptyData) {console.log("存在數據不完整的項");
} else {console.log("所有數據完整");
}

方法3:使用?filter()?獲取所有不完整的數據

const incompleteItems = selinfo.filter(item => !item.po_qty || !item.price);if (incompleteItems.length > 0) {console.log("以下數據不完整:", incompleteItems);
} else {console.log("所有數據完整");
}

方法4:使用?map()?返回檢查結果

const checkResults = selinfo.map(item => ({...item,isValid: item.po_qty != null && item.price != null,
}));console.log("檢查結果:", checkResults);

輸出示例:

[{ id: 1, po_qty: 10, price: 100, isValid: true },{ id: 2, po_qty: null, price: 50, isValid: false },{ id: 3, po_qty: 5, price: null, isValid: false }
]

嚴格判斷空值(排除?0?和?""

如果?po_qty?或?price?可能是?0?或空字符串?"",但你仍然希望它們是有效值,可以這樣判斷:

const isInvalid = (value) => value === null || value === undefined;selinfo.forEach(item => {if (isInvalid(item.po_qty) || isInvalid(item.price)) {console.log("該項數據不合法:", item);}
});

擴展

?判斷數據項中某兩項的數據和另一項的數據比

判斷selinfo數組中,子項now_qty與reject_qty的和是否小于inv_qty

const isRowValid = selinfo.every(row =>(row.now_qty || 0) + (row.reject_qty || 0) <= (row.inv_qty || 0)
);
if (!isRowValid) {wx.showToast({title: '輸入數量請小于庫存量!',icon: 'none'});return;
}

總結

方法適用場景返回值推薦度
forEach遍歷并檢查每一項無返回值,可執行操作??推薦
some只想知道是否有空數據true?/?false?
filter獲取所有不完整的數據數組?? 適用于需要具體數據時
map返回檢查結果新數組?? 適用于需要標記數據時

推薦方案

  • 如果只是檢查是否有空數據?→?some()

  • 如果需要獲取哪些數據為空?→?filter()

  • 如果需要遍歷并處理空數據?→?forEach

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/78967.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/78967.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/78967.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

x-cmd install | jellex - 用 Python 語法在終端里玩轉 JSON 數據!

目錄 核心功能與特點安裝優勢亮點適用場景 還在為命令行下處理 JSON 數據煩惱嗎&#xff1f;jellex 來了&#xff01;它是一款基于終端的交互式 JSON 和 JSON Lines 數據處理工具&#xff0c;讓你用熟悉的 Python 語法&#xff0c;輕松過濾、轉換和探索 JSON 數據。 核心功能與…

4月份到9月份看6本書第二天【ERP與企業管理】

ERP與企業管理 1-11章全面介紹了ERP的基本原理、物料管理功能、計劃功能、生產和采購管理功能、效益以及實施和應用ERP為企業帶來的深層次的變化。 第12章討論了軟件系統的選型。 第13章介紹了ERP實施和運行管理的方法 第14章介紹了國際上廣泛使用的ERP實施應用的評估方法。…

Opencv計算機視覺編程攻略-第十三節 跟蹤視頻中的物品

這是opencv系列的最后一節&#xff0c;主要學習視頻序列&#xff0c;上一節介紹了讀取、處理和存儲視頻的工具&#xff0c;本文將介紹幾種跟蹤圖像序列中運動物體的算法。可見運動或表觀運動&#xff0c;是物體以不同的速度在不同的方向上移動&#xff0c;或者是因為相機在移動…

001 藍橋杯嵌入式賽道備賽——基礎

個人筆記&#xff0c;不扭扭捏捏&#xff0c;一口氣到位。方便自己也方便大家 00 時鐘線 cubeMX已經完成了大多數工作 01 LED&#xff08;GPIO輸出&#xff09; 在使用LED的時候先把SN74HC573鎖存器PD2置高電平&#xff0c;然后寫入LED所要的高低電平&#xff0c;然后置PD2低…

案例-索引對于并發Insert性能優化測試

前言 最近因業務并發量上升,開發反饋對訂單表Insert性能降低。應開發要求對涉及Insert的表進行分析并提供優化方案。 ??一般對Insert 影響基本都在索引,涉及表已按創建日期做了分區表,索引全部為普通索引未做分區索引。 優化建議: 1、將UNIQUE改為HASH(64) GLOBAL IND…

【技術文章的標準結構與內容指南】

技術文章的標準結構與內容指南 技術文章是傳遞專業知識、分享實踐經驗的重要媒介。一篇高質量的技術文章不僅能夠幫助讀者解決問題&#xff0c;還能促進技術交流與創新。以下是技術文章通常包含的核心內容與結構指南。 1. 標題 一個好的技術文章標題應當&#xff1a; 簡潔明…

豪越消防一體化安全管控平臺:構建消防“一張圖”新生態

在城市化進程加速、建筑規模與功能日益復雜的當下&#xff0c;消防救援工作面臨著諸多嚴峻挑戰。火災隱患如同隱藏在暗處的“定時炸彈”&#xff0c;廣泛分布于城市的各個角落&#xff0c;想要快速、精準定位絕非易事。信息傳遞的不順暢更是雪上加霜&#xff0c;導致救援效率大…

重學Redis:Redis常用數據類型+存儲結構(源碼篇)

一、SDS 1&#xff0c;SDS源碼解讀 sds (Simple Dynamic String)&#xff0c;Simple的意思是簡單&#xff0c;Dynamic即動態&#xff0c;意味著其具有動態增加空間的能力&#xff0c;擴容不需要使用者關心。String是字符串的意思。說白了就是用C語言自己封裝了一個字符串類型&a…

抖音IP屬地可以隨便選擇地址嗎?深度解析

在當今社交媒體盛行的時代&#xff0c;抖音作為受歡迎的短視頻平臺之一&#xff0c;其IP屬地顯示功能引發了廣泛關注。許多用戶好奇&#xff1a;抖音的IP屬地是否可以隨意更改&#xff1f;是否存在方法可以“偽裝”自己的位置&#xff1f;?本文將深入探討這一話題。 一、抖音I…

SOLID原則詳解:提升軟件設計質量的關鍵

前言 關于設計原則SOLID具體指的是什么&#xff0c;怎么理解這些設計原則&#xff0c;我覺得有必要記錄一筆&#xff0c;畢竟這個設計原則確實經常在關鍵技術文檔中提及&#xff0c;在編程思想中提及&#xff0c;在日常的開發中使用&#xff0c;但是對我來說&#xff0c;似乎知…

如何使用 ONLYOFFICE 恢復之前的文件版本?

如何使用 ONLYOFFICE 恢復之前的文件版本&#xff1f; https://www.onlyoffice.com/blog/zh-hans/2023/04/how-to-use-version-history

簡簡單單實現一個Python+Selenium的自動化測試框架

什么是Selenium&#xff1f; Selenium是一個基于瀏覽器的自動化測試工具&#xff0c;它提供了一種跨平臺、跨瀏覽器的端到端的web自動化解決方案。Selenium主要包括三部分&#xff1a;Selenium IDE、Selenium WebDriver 和Selenium Grid。 Selenium IDE&#xff1a;Firefox的…

Java設計模式之中介者模式:從入門到架構級實踐

一、什么是中介者模式&#xff1f; 中介者模式&#xff08;Mediator Pattern&#xff09;是一種行為型設計模式&#xff0c;其核心思想是通過引入一個中介對象來封裝多個對象之間的交互關系。這種模式將原本復雜的網狀通信結構轉換為星型結構&#xff0c;類似于現實生活中的機…

Trinity三位一體開源程序是可解釋的 AI 分析工具和 3D 可視化

一、軟件介紹 文末提供源碼和程序下載學習 Trinity三位一體開源程序是可解釋的 AI 分析工具和 3D 可視化。Trinity 提供性能分析和 XAI 工具&#xff0c;非常適合深度學習系統或其他執行復雜分類或解碼的模型。 二、軟件作用和特征 Trinity 通過結合具有超維感知能力的不同交…

LeetCode 熱題 100_單詞拆分(86_139_中等_C++)(動態規劃)

LeetCode 熱題 100_單詞拆分&#xff08;86_139&#xff09; 題目描述&#xff1a;輸入輸出樣例&#xff1a;題解&#xff1a;解題思路&#xff1a;思路一&#xff08;動態規劃&#xff09;&#xff1a; 代碼實現代碼實現&#xff08;思路一&#xff08;動態規劃&#xff09;&a…

VM虛擬機安裝及Ubuntu安裝配置

VM虛擬機安裝及Ubuntu安裝配置 1、VM虛擬機安裝2、創建虛擬機3、Ubuntu系統安裝4、編譯環境配置4.1 、Ubuntu和 Windows文件互傳 文件互傳4.1.1、 開啟Ubunt下的FTP服務 4.2、 Ubuntu下NFS和SSH服務開啟4.2.1、 NFS服務開啟4.2.2、 SSH服務開啟 4.3、 交叉編譯器安裝4.3.1 安裝…

【KWDB 創作者計劃】_產品技術解讀_1

【KWDB 創作者計劃】_產品技術解讀_1 一、存儲引擎:高性能混合存儲架構1. 存儲模型設計2. 存儲壓縮與編碼3. 持久化策略二、KWDB 組件源碼解析1. 核心模塊分層架構2. 關鍵組件源碼剖析三、KWDB 特性代碼通讀1. 實時分析能力(Real-Time OLAP)2. 混合負載隔離(HTAP)3. 智能索…

高速電路中的電阻、電容的選型及應用

2.1 電阻的應用 2.1.1 與電阻相關的經典案例 如果說芯片是電路的骨架&#xff0c;那么電阻就是在芯片之間起連接作用的關節。電阻的阻值、布放位置等&#xff0c;對設計的成功起著至關重要的作用。 【案例2.1】串聯電阻過大&#xff0c;導致板間告警失敗 某產品由業務板和主…

springBoot接入文心一言

文章目錄 效果接入步驟項目接入配置類&#xff1a;WenXinYiYan前端vue代碼js代碼 后端mapper層service層controller層 測試代碼 效果 先來看一下最后實現的效果 &#xff08;1&#xff09;未點擊前的功能頁面 &#xff08;2&#xff09;點擊后的頁面 &#xff08;3&#xff…

css解決邊框四個角有顏色

效果 html <div class"gradient-corner">2021年</div>css background:/* 左上角橫線 */linear-gradient(90deg, rgb(5, 150, 247) 9px, transparent 0) 0 0,/* 左上角豎線 */linear-gradient(0deg, rgb(5, 150, 247) 9px, transparent 0) 0 0,/* 右上…