2016-09-13 9 views
1

今日はLodash..likeの新機能です。ここでは、キーでオブジェクトをフィルタリングするのがとても簡単な記事を見つけました。 SO Postオブジェクトキーの値を取得するためのLodashハンドラ

私がやっていることは似ていますが、私はその価値を求めています。私のアプリは、飲み物を作るための複数のオプションをユーザーに提供します。最低限、1つのオプションを選択する必要があります。彼らがオプションを選択しなかったとき、私は彼らに、基本的なif/elseが私が行っているものでなければならないことを警告したいと思います。

マイオブジェクト:ユーザーが何も選択しない場合

var pref = { 
    'strong': $('#strong').find(':selected').val() === 'Yes', 
    'salty': $('#salty').find(':selected').val() === 'Yes', 
    'bitter': $('#bitter').find(':selected').val() === 'Yes', 
    'sweet': $('#sweet').find(':selected').val() === 'Yes', 
    'fruity': $('#fruity').find(':selected').val() === 'Yes' 
}; 

すべてのキーのための私の値はfalseを読み込みます。現時点では

私の検証コードは:

function validateInputs(pref) { 
var emptyFields = _.filter(pref, function(value, key) { 
    if (emptyFields.key === false) { 
    alert('You must select at least one option.'); 
    } else { 
    // run program 
    randomDrink = myBartender.createDrink(pref); 
    } 
}); 
} 

だから私は言った値でフィルタリングすることができるようにしたい:

if(all keys are false) {alert} else {run the program} 

は私のキーの値を返すハンドラがありますLoDashのために?私がしようとしているものに目障りなエラーがある場合は、私に知らせてください。私はこのようなオブジェクトをフィルタリングしようとしたことがないので、学習が進行中です!

答えて

1

ここにはLodash docsがあります。

  1. _.values(pref) // //戻り

  2. _.compact([true, false, false, false])

  3. [TRUE、FALSE、偽、偽]戻り//

  4. _.isEmpty [真]チェックアレイは

空であります

if(_.isEmpty(_.compact(_.values(pref)))) {alert} else {run the program};

+0

どうもありがとうございます!私は右ハンドラを見つけるためにドキュメントを読んできました。私は魅力のように働く助けに感謝します! – rockchalkwushock

関連する問題