Я бы предположил, что Program.flatPercentageDiscountByMajorClass[i]
- это undefined
, и попытка получить доступ к свойству majorClass
вызывает ошибку.
Вы можете использовать экзистенциальный оператор в coffeescript, чтобы избежать этого.
if typeof Program.flatPercentageDiscountByMajorClass[i]?.majorClass == 'undefined'
// The existential operator goes before the dot ------^
Некоторые другие наблюдения:
var
не используется в coffeescript. Я действительно не уверен, что вы пытаетесь достичь с помощью этого цикла. break
означает, что вы когда-либо будете выполнять только одну итерацию - это только для целей отладки?
Вы должны изучить циклы и понимания для перебора массивов в coffeescript вместо использования while
цикла.