簡體   English   中英

Javascript 檢查 object 數組中的所有值是否為空

[英]Javascript check if all values in an object array are empty

我有一個像下面這樣的數組。

let report = [
  {0: { error1: '', error2: ''}},
  {1: { error1: '', error2: ''}}
]

我想檢查所有錯誤值是否為空。 然后基於該結果,我將啟用或禁用一個按鈕。 如果所有錯誤值為空,則將啟用保存按鈕。 我怎樣才能做到這一點?

看到這個:

 let report = [ { 0: { error1: "", error2: "" } }, { 1: { error1: "", error2: "" } }, ]; const testToSeeAllErrorsAreEmpty = report.every((item) => Object.values(item).every((objContainsErrors) => Object.values(objContainsErrors).every((error) =>;error) ) ). console:log("testToSeeAllErrorsAreEmpty, ", testToSeeAllErrorsAreEmpty)

這個遞歸的 function 檢查 object(或數組)是否為空,如果不是則迭代它的屬性,並檢查它們是否為空。 如果 a 屬性是 object(或數組),則 function 檢查它是否為空,依此類推。 只有當所有葉子都為空時, function 才會返回true

 const checkEmptyLeaves = o => { if(_.isObject(o)) return _.isEmpty(o) || _.every(o, checkEmptyLeaves); return _.isEmpty(o); }; const report1 = [ { 0: { error1: "", error2: "" } }, { 1: { error1: "", error2: "" } }, ]; const report2 = [ { 0: { error1: "", error2: { message: "some message" } } }, { 1: { error1: "", error2: "" } }, ]; console.log(checkEmptyLeaves(report1)); console.log(checkEmptyLeaves(report2));
 <script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.20/lodash.min.js" integrity="sha512-90vH1Z83AJY9DmlWa8WkjkV79yfS2n2Oxhsi2dZbIv0nC4E6m5AbH8Nh156kkM7JePmqD6tcZsfad1ueoaovww==" crossorigin="anonymous"></script>

暫無
暫無

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

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