2017-04-22 6 views
0

これは、すべてのフィールドが満たされているかどうかをチェックする必要がある非常に一般的な使用方法です。私はonChangeと反応し、e.target.nameを私のオブジェクトのキーとして適用します。onChangeオブジェクトのプロパティがすべて存在するかどうかをチェックします。未定義または空の文字列ではありません

私はconsole.log(this.state.user);を行うように私は

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

を取得しますが、すべてが空またはnullでないかどうかを確認する方法?私は手動でuser.name != undefinedのようにチェックしますが、私のキーは10以上です。これを行うには、より良いlodashメソッドがありますか?

私はあなたがあなたのオブジェクトの値を反復してreduce方法を使用することができ、この

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

     this.setState({ 
     user 
     }); 

答えて

0

のような状態に設定します。

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

初期値です。初期値が指定されない場合、配列の最初の要素が使用されます。私はそれを使用します。なぜなら、オブジェクトには1つのプロパティがあっても、常に出力としてブール値を取得するからです。 –

関連する問題