在红宝石中,我会做类似的事情:
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作为唯一选中的输入时,它将运行隐藏/禁用而不是显示。
我的代码有什么问题?
答案 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);
}
}