javascript - if 语句仅在 for 循环的索引 2 上执行
问题描述
我的咖啡脚本中有这个 for 循环:
compareVersions = (current, minimum) ->
console.log('current ', current)
console.log('minimum ', minimum)
current_parts = current.split '.'
minimum_parts = minimum.split '.'
for partIndex in [0..Math.min(current_parts.length, minimum_parts.length)]
console.log('partIndex ', partIndex)
if (+current_parts[partIndex] || 0) < (+minimum_parts[partIndex] || 0)
console.log('current_parts.length1 ', current_parts[partIndex])
console.log('minimum_parts.length1 ', minimum_parts[partIndex])
return false
console.log('PC current_parts.length2 ', current_parts[partIndex])
console.log('PC minimum_parts.length2 ', minimum_parts[partIndex])
true
它旨在比较软件版本,如果当前版本低于最低版本,则返回 false。
我添加了console.log
's 以显示正在发生的事情。
这是我得到的输出。在这种情况下,当前版本高于最小值,但 if 语句仅在索引 2 上执行,在这种情况下,当前版本的数字低于最小值。
current 3.4.1.35
minimum 3.3.3
partIndex 0
partIndex 1
partIndex 2
current_parts.length1 1
minimum_parts.length1 3
if 语句应该在 for 循环的每次迭代中执行。这里有什么问题阻止了这一点?
解决方案
if 语句在 for 循环的每次迭代中都执行,但是当 if 语句为真时会打印 current_parts.length1 和 minimum_parts.length1。
您的 if 语句的执行将是:
3 < 3 false
4 < 3 false
1 < 3 true
print current_parts.length1
print minimum_parts.length1
如果要显示 current_parts.length1 和 minimum_parts.length1,请将它们放在 if 语句之外,以便在执行 if 语句时看到这些值。
推荐阅读
- macos - dyld:找不到符号:__ZdaPvm - 在 Mac OS X 上运行 KING
- sql - ORACLE中如何去掉换行符
- salesforce - 是否可以通过从另一个系统(例如 Salesforce)读取来填充 IBM Watson Assistant 实体?
- xcode - 如何更改 Xcode 上的配置文件?
- android - 如何使用 Firebase 作业调度程序每周安排任务?
- linux - ftp 为发送的每个文件创建一个日志
- ios - 如何将图像拖放到删除图标上以删除图像?
- c# - 在专用服务器上运行网站时出现找不到指定文件的数据库错误
- android - 无法在给定布局中设置底部边距
- c++ - 为什么在我的其他线程锁定它之前我的互斥锁没有锁定?