检查循环的值,看是否匹配?

时间:2020-02-07 05:24:41

标签: javascript jquery

在红宝石中,我会做类似的事情:

array = [1,2,3]
array.any? {|a| a == 1}
=> true

尽管,我不是一个数组,而是一个哈希值

var shop_products = {"607":607};

我有一个复选框循环,我想检查所有当前选中的复选框,以了解何时同时选中和不选中复选框,然后查看是否有匹配的值并禁用/启用并隐藏/显示按钮(如果有)。

代码:https://jsfiddle.net/mk879vu2/7/

就像@Mark Meyer提到的那样,有些方法可以提供帮助,但是有没有办法针对散列或alt使用散列呢?

我尝试过:https://jsfiddle.net/jq9sgp58/

也许我用错了吗?

我现在的问题是,当一个复选框处于未选中状态时,它看到该值是“正确的”复选框,但是当我取消选中时,它没有显示该按钮。有条件的话我做错了。

在jsfiddle中,我具有所有输入,但是当检查具有特定参数的记录时,我只希望按钮(两个)中的一个出现(在示例中,此值为value = 607,可以是任意数量但在示例中,我将其作为1条记录/输入)。但是,当我取消选中并且仅将607作为唯一选中的输入时,它将运行隐藏/禁用而不是显示。

我的代码有什么问题?

2 个答案:

答案 0 :(得分:3)

听起来您正在寻找#array.some()

let a = [1,2,3]

console.log(a.some(n => n === 1)) // true

console.log(a.some(n => n === 4)) //false

答案 1 :(得分:0)

https://jsfiddle.net/2kaegb59/

.some似乎是完成它的方法,但我无法使其与哈希一起使用。我敢肯定有可能。虽然,我最终只是通过哈希检查未定义的内容,而不是尝试将校验值与哈希值进行匹配,这可能会明显更快。

   for (var check of checked_checkboxes_check) {
      if (shop_products[check.value] === undefined) {
        print_submit.hide().prop("disabled", true);
        break;
      } else {
        print_submit.show().prop("disabled", false);
      }
    } 
相关问题