javascript - Ruby 中的模数总是返回 false

标签 javascript ruby-on-rails ruby code-translation

我需要将以下循环从 JavaScript 翻译成 Ruby:

for(i=0;i<=b.length-1;i++){
  if(!(i%2)){
    c+=b[i]
  }
}

下面是我尝试用 Ruby 编写相同内容的方法:

until i == b.length-1 do
  unless i%2 == true
    c += b[i]
    i += 1
  end  
end

但是,Ruby 中的取模运算符似乎总是返回 false;这使得整个条件变得毫无意义。

我做错了什么?

最佳答案

你应该:

unless i%2 == 1

或者,等价地:

if i%2 == 0

意外行为的原因是 Ruby 在条件语句中将除 falsenil 之外的所有值(包括 0)视为“真实” .

关于javascript - Ruby 中的模数总是返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21093393/

相关文章:

ruby-on-rails - 如何使用 ActiveRecord 映射多个属性?

Ruby TCPServer 套接字

ruby-on-rails - Rails URI.open 导入正在从 .TXT 导入中删除标点符号

javascript - 使函数在 HTTP 和 HTTPS 中工作

javascript - 捕获 Promise 相关错误

javascript - 如何在jquery select2中获取项目

ruby-on-rails - 在运行时更改乘客应用程序池的大小

ruby-on-rails - rails : Unable to access log file

ruby-on-rails - 返回rails中命名参数的内容

javascript - 在 AngularJS 中,哪些模块可以覆盖常量?