Значение массива Javascript не определено & hellip; как мне проверить это [дубликаты]

Тонкая проблема, вызывающая потерю печати даже при неправильной настройке переменных среды, например. здесь LC_ALL установлен на «C». В Debian они препятствуют установке: Debian wiki в Locale

$ echo $LANG
en_US.utf8
$ echo $LC_ALL 
C
$ python -c "print (u'voil\u00e0')"
Traceback (most recent call last):
  File "", line 1, in 
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe0' in position 4: ordinal not in range(128)
$ export LC_ALL='en_US.utf8'
$ python -c "print (u'voil\u00e0')"
voilà
$ unset LC_ALL
$ python -c "print (u'voil\u00e0')"
voilà

29
задан Sonny Chivas 30 September 2015 в 14:04
поделиться

7 ответов

array[index] == 'undefined' сравнивает значение индекса массива со строкой «undefined».
Вы, вероятно, ищете typeof array[index] == 'undefined', который сравнивает тип .

63
ответ дан deceze 30 September 2015 в 14:04
поделиться

Вы проверяете, что индекс массива содержит строку "undefined", вы должны либо использовать оператор typeof:

typeof predQuery[preId] == 'undefined'

, либо использовать глобальное свойство undefined:

predQuery[preId] === undefined

Первый способ безопаснее , поскольку глобальное свойство undefined доступно для записи, и его можно изменить на любое другое значение.

12
ответ дан CMS 30 September 2015 в 14:04
поделиться

Проверьте для

if (predQuery[preId] === undefined)

Используйте оператор строгого равенства. См. операторы сравнения

.
2
ответ дан rahul 30 September 2015 в 14:04
поделиться

try: typeof(predQuery[preId])=='undefined'
или, в более общем случае: typeof(yourArray[yourIndex])=='undefined'
Вы сравниваете «undefined» с undefined, что возвращает false =)

2
ответ дан Warty 30 September 2015 в 14:04
поделиться
predQuery[preId]=='undefined'

Вы тестируете по строке 'undefined'; вы перепутали этот тест с тестом typeof, который возвращает строку. Вы, вероятно, хотите проверить специальное значение undefined:

predQuery[preId]===undefined

Обратите внимание на оператор строгого равенства, чтобы избежать нежелательного совпадения null==undefined.

Однако есть два способа получить значение undefined: либо preId не является членом predQuery, либо является элементом, но имеет значение, установленное в специальное значение undefined значение. Часто вам нужно только проверить, присутствует он или нет; в этом случае оператор in более уместен:

!(preId in predQuery)
6
ответ дан bobince 30 September 2015 в 14:04
поделиться

Есть больше (много) способов в Рим:

//=>considering predQuery[preId] is undefined:
predQuery[preId] === undefined; //=> true
undefined === predQuery[preId] //=> true
predQuery[preId] || 'it\'s unbelievable!' //=> it's unbelievable
var isdef = predQuery[preId] ? predQuery[preId] : null //=> isdef = null

ура!

4
ответ дан KooiInc 30 September 2015 в 14:04
поделиться

Этот код работает очень хорошо

function isUndefined(array, index) {
    return ((String(array[index]) == "undefined") ? "Yes" : "No");
}
0
ответ дан Farside 30 September 2015 в 14:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: