Можно ли использовать массив строк размером 1 как строку? - PullRequest
0 голосов
/ 01 октября 2019

Я перевожу программу из asp в asp.net. У создателя есть несколько функций, которые я ломаю голову. Кажется, что он передает обратно массивы, но результаты функции используются, как если бы они были строками в одних ситуациях и массивами в других.

В большинстве случаев он работает так, как будто возвращает строку, но иногда это будет происходить для каждого результата, что указывает на то, что на самом деле это массив строк. Я искал в Интернете, чтобы увидеть, есть ли какая-то странная логика угловых случаев, но ничего особенного для этого не возникает.

function textvalue(myPar)
{
    eval("var anotherArray=" + myPar);
    anotherArray.sort();

    if (eval("datatype" + myPar)=="datetime")
    {
        //if (eval(myPar)==null || eval(myPar)=="null" || eval(myPar)=="")
        if (anotherArray.toString()==null || anotherArray.toString()=="null" || anotherArray.toString()=="")
        {
            return anotherArray;
        }
        else
        {
            return new Array(convertFromAODdatetime(anotherArray.toString()));
        }
    }
    else
    {
        return anotherArray;
    }
}

USE 1
Response.Write(...existing status: " & theStructure.textvalue("structureItemStatus") & "....")

USE 2
For Each datum In fileData.textValue("fileNomenclature")
                            Response.Write(...

В конечном счете, мне интересно, нужно ли мне делать что-то уникальное с этими функциями или, может быть,результирующий тип данных для правильного копирования логики функции.

1 Ответ

0 голосов
/ 01 октября 2019

Я не верю, что массив работает таким образом. Возможно, вы сможете заменить массив списком, и он будет работать так, как вы ожидаете.

Другой вариант - просто запустить оператор if, чтобы увидеть, больше ли длина массива, чем 1, затем запуститьв противном случае просто возьмите arry [0].

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