У меня есть это для цикла в моем coffeescript:
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
, чтобы показать, что происходит.
Это вывод, который я получаю. В этом случае текущая версия является хигнером, чем минимум, но оператор 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. Что здесь плохого, что мешает этому?