Javascript базы данных строк в массиве - как изменить значение? - PullRequest
0 голосов
/ 04 апреля 2011

У меня есть запрос к базе данных, который возвращает строки в локальный массив:

for (var i=0; i < results.rows.length; i++) 
{
    localResultsArray[i] = results.rows.item(i);
}

Позже я хочу обновить значение в локальном массиве, которое соответствует столбцу «answer_correctly» моей базы данныхно это значение не обновляется.Мой код:

localResultsArray[currentQuestionNumber].answered_correctly = 1;

, но это почему-то не меняет значение в массиве на 1 - что я делаю не так?

(Кстати, если я сделаю сравнениеНапример, в операторе if это работает, поэтому я должен использовать неправильный синтаксис выше ??)

if (localResultsArray[currentQuestionNumber].answered_correctly == 2)
{
    incrementMe++;
}

Заранее спасибо!Ник.

Ответы [ 2 ]

1 голос
/ 04 апреля 2011
for (var i=0; i < results.rows.length; i++) {
    localResultsArray[i] = results.rows.item(i);
}

Как уже указывалось, item () вряд ли будет методом, вы, вероятно, имели в виду item [i].

localResultsArray[currentQuestionNumber].answered_correctly = 1;

Если localResultsArray [currentQuestionNumber] ссылается на массив, то приведенный вышеСтрока устанавливает свойство answer_correctly в 1. Это то, что вы хотите сделать?Это не изменит значение в любом массиве.Вы можете сделать:

localResultsArray[answered_correctly] = 1;

или

localResultsArray[currentQuestionNumber] = 1;

в зависимости от того, какая из этих переменных ссылается на номер столбца.

Массивы Javascript - это просто объекты со специальнымСвойство length (и некоторые удобные методы), члены массива - это просто свойства с числовыми именами (индексами или ключами).Поэтому, если вы хотите получить доступ к членам массива, используйте числовые имена свойств.Использование буквенных имен добавляет новое свойство, которое не является членом массива.

0 голосов
/ 04 апреля 2011

Из краткого обзора вашего кода я задаюсь вопросом, является ли следующая строка правильной:

localResultsArray[i] = results.rows.item(i);

Я не знаю, какую библиотеку вы используете, которая дает вам объект результатов, но я оченьсомнение rows.item - это функция, а не массив ...

Попробуйте

localResultsArray[i] = results.rows.item[i];

Если это не сработает, обновите ваш пост используемой вами библиотекой или добавьте дополнительные данныеобъект результатов ...

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