簡體   English   中英

Lodash,檢查對象是否存在以及屬性是否存在並且為真

[英]Lodash , check if object exists and property exists and is true

早上好 。 我需要檢查對象是否存在以及某些屬性是否為true的幫助。 例如:

validations={
  "DSP_INDICADOR": {
    "required": true
  },
  "EMPRESA": {
    "required": true
  },
.....
  "NOME_AVAL": {
    "required": false,
    "notEqualToField": "NOME"
  }
}

然后檢查是否required:true

提前致謝

簡單使用如何

_.get(validations, "EMPRESA.required"); 在lodash

這樣,我們可以獲取任何深度,並且不需要一次又一次地使用連續的&&來確保每個子級別都首先存在直接父級別。

您可以通過更具編程性的方式使用此_.get ,並使用默認值(如果路徑不存在)和按適當順序進行查找的keys array 因此,您可以動態地傳遞鍵數組來獲取值,而無需為所創建的字符串創建一個字符串. 類似於"EMPRESA.required" (在您輸入的N深度查找路徑不是string

這是一個例子:

 let obj = {a1: {a2: {a3: {a4: {a5: {value: 101}}}}}}; let path1 = ['a1', 'a2', 'a3', 'a4', 'a5', 'value'], //valid path2 = ['a1', 'a2', 'a3', 'a4'], //valid path3 = ['a1', 'a3', 'a2', 'x', 'y', 'z']; //invalid console.log(`Lookup for ${path1.join('->')}: `, _.get(obj, path1)); console.log(`Lookup for ${path2.join('->')}: `, _.get(obj, path2)); console.log(`Lookup for ${path3.join('->')}: `, _.get(obj, path3)); console.log(`Lookup for ${path3.join('->')} with default Value: `, _.get(obj, path3, 404)); 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.10/lodash.min.js"></script> 

我想就是這樣。

if (validations["EMPRESA"] && validations["EMPRESA"].required) {
  console.log(true)
} else {
  console.log(false)
}

暫無
暫無

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

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