目前我有这个代码:
if !(allowed_params & password_protected_params).empty?
这意味着“如果 allowed_params 中的任何内容也在 password_protected_params 中”。这段代码可以工作,但我发现它有点困惑,并且对于下一个查看这段代码的开发人员来说不友好。
是否有另一种更易读的方法来检查一个数组中的任何内容是否存在于另一个数组中?
编辑
有问题的 block 是这样的:
if !(allowed_params & password_protected_params).empty?
result = @user.update_with_password(allowed_params)
else
#only update trivial attributes
result = @user.update_without_password(allowed_params)
end
最后我只是添加了一个变量以使其更具可读性(但仍然愿意接受更好的建议):
needs_password = !(allowed_params & password_protected_params).empty?
if needs_password
result = @user.update_with_password(allowed_params)
else
#only update trivial attributes
result = @user.update_without_password(allowed_params)
end
最佳答案
一种 Ruby 方式可能是
foo = [1, 2]
=> [1, 2]
bar = [1, 3]
=> [1, 3]
baz = [5, 3]
=> [5, 3]
bar.any?{|element| foo.include?(element)}
=> true
baz.any?{|element| foo.include?(element)}
=> false
关于arrays - ruby 检查数组中的任何项目是否存在于另一个数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38043796/