![](/img/trans.png)
[英]How can i check if the Object' typeSoftware has (-1) value and remove it from it?
[英]How can I check if an object has an empty value on a key?
我正在進行表單驗證,我需要檢查何時有空值。
到目前為止,驗證是這樣的:
const areFieldsFilledOut = () => {
if (
(size(startupThirdStepForm) === 9 &&
!has(startupThirdStepForm, 'middleName')) ||
size(startupThirdStepForm) === 10
) {
stepThreeCardSelectedActionHandler(true);
return false;
}
if (
has(startupThirdStepForm.middleName) &&
!startupThirdStepForm.middleName.length
) {
stepThreeCardSelectedActionHandler(true);
return false;
}
return 'disabled';
};
那個中間名的東西只是不需要的。 該對象最多可以包含15個鍵。 因此,我想要對lodash
-hopefully-做的就是這樣的另一項驗證:(偽代碼)
if (
startupThirdStepForm has any key with an empty value
) {
stepThreeCardSelectedActionHandler(false);
return true;
}
startupThirdStepForm
是包含我需要檢查的對象。 它是一個空對象,但鍵/值是動態創建的。
因此,當出現以下情況時,我需要像上面的偽代碼一樣返回true
:
startupThirdStepForm: { key1: 'I have a value', key2: '' }
當每個鍵都有一個適當的值而不是一個空值時,返回false
。
如果僅關於自己的屬性,則可以使用Object.values
來獲取每個屬性值作為數組,然后使用.some
檢查其中是否為空:
if (Object.values(startupThirdStepForm).some(v => v === '')) {
}
您可以使用_.some()
迭代對象的屬性,並檢查的值是一個空字符串_.isEqual()
const optional = ['middle'] const startupThirdStepForm = { key1: 'I have a value', key2: '', middle: '' } const result = _.some(_.omit(startupThirdStepForm, optional), _.partial(_.isEqual, '')) console.log(result)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.js"></script>
和lodash / fp相同的想法:
const fn = optional => _.flow( _.omit(optional), _.some(_.isEqual('')) ) const optional = ['middle'] const withoutOptional = fn(optional) console.log(withoutOptional({ key1: 'I have a value', key2: '' })) // true console.log(withoutOptional({ key1: 'I have a value', middle: '' })) // false
<script src='https://cdn.jsdelivr.net/g/lodash@4(lodash.min.js+lodash.fp.min.js)'></script>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.