Итак, это может быть действительно глупый вопрос, но я, очевидно, что-то здесь упускаю.
Рассмотрим следующий код:
var selectedItems = [];
selectedItems.push("0ce49e98-a8aa-46ad-bc25-3a49d475e9d3");
//fyi, selectedItems[selectedItems.length] = "0ce49e98-a8aa-46ad-bc25-3a49d475e9d3"; produced the same result.
В конце selectedItems
содержимое выглядит так:
Name Value Type
------------- -------------------------------------- ------
selectedItems {...} Object
- [0] "0ce49e98-a8aa-46ad-bc25-3a49d475e9d3" String
- length 1 Long
Но если я просто попытаюсь вызвать split () для той же строки, например:
selectedItems = "0ce49e98-a8aa-46ad-bc25-3a49d475e9d3".split(",")
Теперь содержимое моего предполагаемого массива выглядит следующим образом (отсутствует длина):
Name Value Type
------------- -------------------------------------- ------
selectedItems {...} Object
- [0] "0ce49e98-a8aa-46ad-bc25-3a49d475e9d3" String
Есть идеи, в чем разница? Что на самом деле здесь происходит?
Заранее спасибо.
ОБНОВЛЕНО :
У меня есть ощущение, что на самом деле есть что-то структурно отличающееся в двух результирующих значениях, потому что (atlas) ajax перекрывает значение со свойством length, когда я пытаюсь передать его WebMethod на стороне сервера (нет фактического сообщения об ошибке, но я знаю звонок не получается). Я не уверен.
ОБНОВЛЕНИЕ № 2
Я заметил, что установка targetLocationIdList таким способом приводит к тому, что свойство «length» не отображается в окне Quick Watch:
var params =
{
jobId : args.get_JobId(),
targetLocationIdList : retVal.split(',')
};
Но эти результаты содержат свойство 'length', отображаемое в окне быстрого просмотра:
var retValArr = [];
retValArr = retVal.split(',');
var params =
{
jobId : args.get_JobId(),
targetLocationIdList : retValArr
};