Итерация jQuery-объекта из массивов и не-массивов - PullRequest
2 голосов
/ 17 января 2012

рассмотрим следующее ...

var $QuestionnaireAnswers = [];

var $QuestionnaireInProgress =
        {
            Questions: {
                QuestionNumber: null,
                Options: [],
                YesNo: [],
                TextArea: []
            }
        };

function findAndRemove(array, property, value) {
   $.each(array, function(index, result) {
      if(result[property] == value) {
          //Remove from array
          array.splice(index, 1);
      }    
   });
}

По сути, у меня есть вопросник, основанный на данных, который для каждого номера вопроса может иметь 0 или более, Опции, которые будут списком переключателей.или флажки и 0 или более групп переключателей да / нет;и / или ноль или более textareas ...

Массив $ QuestionnaireAnswers - это то, что в конечном итоге будет опубликовано на моем контроллере mvc3 ...

Один объект $ QuestionnaireInProgress добавляется в массив $ QuestionnaireAnswers на основе массивав jquery событиях click / change и других критериях ... для каждого номера вопроса.

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

текущая проблема 2 настраивает findAndRemove для итерации n чисел в номере вопроса и удаления или склеивания, еслисуществует, не совсем уверенный в том, как настроитьr этот тип рекурсии ...

Что происходит, я не могу добраться до точки, где findandremove примет массив $ QuestionnaireAnswers в качестве параметра ...

Скажем, я добавляючто-то вроде этого ...

$QuestionnaireAnswers.push($QuestionnaireInProgress);

тогда я вызываю findandremove($QuestionnaireAnswers, "QuestionNumber", "1234");

И я получаю довольно бесполезную ошибку "Ошибка выполнения Microsoft JScript: ожидается объект.

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

Заранее спасибо.

1 Ответ

0 голосов
/ 01 февраля 2012

Вы смотрели в консоли, чтобы увидеть, на какой линии она ломается?

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