проверять неопределенность при итерации скрипта массива кофе - PullRequest
0 голосов
/ 21 марта 2019

Я перебираю массив и получаю ошибку переменной 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++

Ответы [ 2 ]

1 голос
/ 23 марта 2019

Для проверки элемента undefined в сценарии кофе вы можете использовать троичный оператор, как этот.

Flag = if typeof Program.flatPercentageDiscountByMajorClass[i].majorClass != 'undefined' then false else true 
1 голос
/ 22 марта 2019

Я бы предположил, что 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 цикла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...