用于获取对象键

时间:2016-09-13 20:25:45

标签: validation oop lodash

Lodash的新手......就像今天新的一样。我发现这里的帖子通过其键过滤对象非常简单。 SO Post

所以我试图做的是类似但我想要的价值。我的应用程序为用户提供了多种调制饮料的选项。至少他们必须选择一个选项。当他们没有选择一个选项时,我想提醒他们,他们必须这么基本的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 个答案:

答案 0 :(得分:1)

这是Lodash docs

  1. G' //返回[true,false,false,false]

  2. _.values(pref) //返回[true]

  3. _.compact([true, false, false, false]) //检查数组是否为空

  4. _.isEmpty