#javascript #coffeescript
#javascript #coffeescript
Вопрос:
Я выполняю итерацию по массиву и получаю undefined
ошибку переменной при итерации в CoffeeScript. Я не очень уверен, как проверять на неопределенное при итерации по массиву в CoffeeScript.
Пожалуйста, найдите мой код ниже.
i=0
while Program.flatPercentageDiscountByMajorClass.length
var
if typeof Program.flatPercentageDiscountByMajorClass[i].majorClass == 'undefined' // this line is not working. throwing Undefined error
FlatPercentageFlag = true
else
PdpTableFlag = true
break
i
Ответ №1:
Для проверки undefined
элемента в coffee script вы можете использовать тернарный оператор, подобный этому.
Flag = if typeof Program.flatPercentageDiscountByMajorClass[i].majorClass != 'undefined' then false else true
Ответ №2:
Я бы предположил, что это 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
цикл.