2017-04-22 39 views
0

這是一個非常常見的用法,您必須檢查是否填寫了所有字段。我使用反應onChange並將e.target.name作爲我的對象的關鍵。onChange檢查對象的所有屬性是否存在且未定義或爲空字符串

像我這樣做console.log(this.state.user);我會得到

user : { 
name:"something", 
age:1 
} 

但如何檢查,如果一切都沒有空或空?我手動檢查,如user.name != undefined,但我的關鍵是超過10。有沒有更好的lodash方法來做到這一點?

我設置狀態這樣

const user = this.state.user; 
     user[field] = event.target.value; 

     this.setState({ 
     user 
     }); 

回答

0

可以遍歷你的對象的值,並使用reduce方法。

const allExist = Object.values(this.state.user) 
    .reduce(function(accumulator, current){ 
    return accumulator && !!current 
    }, true); 

const user = { 
 
    name:"something", 
 
    age:1 
 
} 
 

 
const allExist = Object.keys(user) 
 
    .reduce(function(accumulator, current){ 
 
    return accumulator && !!current 
 
    }, true); 
 
    
 
console.log(allExist);

+0

是減少所需的真實,第二PARAM? –

+0

測試過的ur代碼,它不起作用。 –

+0

這是初始值。如果沒有提供初始值,則將使用數組中的第一個元素。我使用它,因爲它確保我始終得到一個布爾值作爲輸出,即使對象中有一個屬性。 –

相關問題