Проблема при заполнении массива объектов в JavaScript?

Здравствуйте!
Имеется:
for($i = 0; $i < qList.length; $i++){		
   row = $(qList[$i]).children('.row');
   question.qName = $(row).children('.question-hint').val();
   question.qHint = $(row).children('.question-name').val();;
	
   vList = $(qList[$i]).children('.variants');

   for($j = 0; $j < vList.length; $j++){			
	question.vContent[$j] = $(vList[$j]).children('.variant-rule').val();
	question.vRule[$j] = $(vList[$j]).children('.variant-cont').val();	
   }
		
    qArray.push(question);
}


, где question - объект
qArray - массив

Проблема:
Есть "редактор" вопросов онлайн-теста, с вариантами ответов.
Перед отправкой в MySQL Вопросы "упаковываются" в массив, который состоит из объектов.

В конце цикла qArray заполнен, но заполнен от начала и до конца последними значениями. Я так понимаю это потому , что мы заносим в массив объект, а все значения массива, получается теперь, зависят от значения объекта.
Подскажите пожалуйста как эту ситуацию обойти
  • Вопрос задан
  • 71 просмотр
Решения вопроса 1
RAX7
@RAX7
Объекты в js передаются по ссылке
Нужно в начале каждого цилка создавать новый пустой объект, заполнять его и добавлять в массив.
for($i = 0; $i < qList.length; $i++){
  const question = {};
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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