【问题标题】:Lodash handler for getting value of object key用于获取对象键值的 Lodash 处理程序
【发布时间】:2016-09-13 20:25:45
【问题描述】:

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 密钥的值?如果您发现我正在尝试做的任何明显错误,请告诉我。我从未尝试过过滤这样的对象,所以学习正在进行中!

【问题讨论】:

    标签: validation oop lodash


    【解决方案1】:

    这里是Lodash docs

    1. _.values(pref) // 返回 [true, false, false, false]

    2. _.compact([true, false, false, false]) // 返回 [true]

    3. _.isEmpty // 检查数组是否为空

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

    【讨论】:

    • 非常感谢!我一直在阅读文档,试图找到合适的处理程序。我很感激帮助就像一个魅力!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-12
    • 1970-01-01
    • 2011-05-13
    • 1970-01-01
    相关资源
    最近更新 更多