Как сделать, чтобы при переборе объекта с помощью for in и подстановки в карточку значений ,появлялась одна карточка
попытаюсь объяснить по понятней) У меня есть код с карточкой. С помощью for in я перебираю объект questions и подставляю значение в карточку. Получаю несколько повторяющихся карточек.Помогите разобраться, пожалуйста.
const test=[
{"id":1,
"questionsRus":"Я программист",
"questionsEng":["I'm", "a", "programmer"],
"buttonTextVariant":["I'm", "a", "programmer"],
"answers":[],
"result":[]
}
,
{
"id":2,
"questionsRus":"привлекательные, но чаще всего ненужные настройки",
"questionsEng":["bells", "and", "whistles" ],
"buttonTextVariant":["bells", "and", "whistles" ],
"answers":[],
"result":[]
}
]
const questionsRus = ["Я", "программист"]
const questions1 = [["I'm", "a", "programmer"],["I'm2", "a2", "programmer2"]];
const questions=test[Math.floor(Math.random() * test.length)];
console.log(questions);
//const answers = [];
var Score=0;
var lScore = document.querySelector('.score');
const list= document.querySelector('.list');
const placeCard= document.querySelector('.placeCard');
for (let element in questions) {
const placeCard = document.createElement('div');
placeCard.classList.add('place-card');
const placeCardVopros=document.createElement('div');
placeCardVopros.classList.add('vopros');
placeCard.appendChild(placeCardVopros);
const placeCardOtvet=document.createElement('div');
placeCardOtvet.classList.add('otvet');
placeCard.appendChild(placeCardOtvet);
const placeCardButtonGroup = document.createElement('div');
placeCardButtonGroup.classList.add('otvet-variant');
placeCard.appendChild(placeCardButtonGroup);
const buttonText1= document.createElement('button');
buttonText1.textContent = questions.buttonTextVariant[0];
placeCardButtonGroup.appendChild(buttonText1);
const buttonText2= document.createElement('button');
buttonText2.textContent = questions.buttonTextVariant[1];
placeCardButtonGroup.appendChild(buttonText2);
const buttonText3= document.createElement('button');
buttonText3.textContent = questions.buttonTextVariant[2];
placeCardButtonGroup.appendChild(buttonText3);
const textVopros = document.createElement('p');
placeCardVopros.appendChild(textVopros);
textVopros.textContent = questionsRus;
const text4 = document.createElement('p');
placeCardOtvet.appendChild(text4);
const text5 = document.createElement('p');
placeCardOtvet.appendChild(text5);
const text6 = document.createElement('p');
placeCardOtvet.appendChild(text6);
const buttonProverka = document.createElement('button');
buttonProverka.textContent="Следующий вопрос" ;
placeCard.appendChild(buttonProverka);
const pushed1 = () => {
let res = questions.answers.push(questions.buttonTextVariant[0]);
text4.textContent = questions.buttonTextVariant[0];
buttonText1.classList.add("display-none")
placeCardOtvet.appendChild(text4);
return res;
}
const pushed2 = () => {
let res = questions.answers.push(questions.buttonTextVariant[1]);
text5.textContent = questions.buttonTextVariant[1];
buttonText2.classList.add("display-none")
placeCardOtvet.appendChild(text5);
return res;
}
const pushed3 = () => {
let res = questions.answers.push(questions.buttonTextVariant[2]);
text6.textContent = questions.buttonTextVariant[2];
buttonText3.classList.add("display-none")
placeCardOtvet.appendChild(text6);
return res;
}
buttonText1.addEventListener("click", pushed1);
buttonText2.addEventListener("click", pushed2);
buttonText3.addEventListener("click", pushed3);
const checkAnswers = (a, b) => {
return a.map((item, idx) => item === b[idx]);
}
buttonProverka.addEventListener("click", proverka);
const questionsEng=questions;
function proverka() {
let res = checkAnswers(questions.answers, questions.questionsEng);
if ((res[0] && res[1] && res[2])===false) {
Score=Score-1; lScore.innerHTML=Score;
}else{ Score=Score+1;
questions.result.push(Score);
console.log(Score)
}
if (res[0] === false) {
text4.classList.add('border-red');
} else {
text4.classList.add('border-green')
};
if (res[1] === false) {
text5.classList.add('border-red');
} else {
text5.classList.add('border-green')
};
if (res[2] === false) {
text6.classList.add('border-red')
} else {
text6.classList.add('border-green')
};
}
list.appendChild(placeCard)
}
console.log(questions.buttonTextVariant);
.vopros{
display:flex;
margin:10px;
}
.otvet{
display:flex;
}
.border-red{
border:solid 1px red;
}
.border-green{
border:solid 1px green;
}
.otvet-variant{
display:flex;
}
.otvet-text{
margin-right: 10px;
}
.otvet-text5{
margin-right: 10px;
}
.otvet-text6{
margin-right: 10px;
}
.vopros-text1{
margin-right: 10px;
}
.vopros-text2{
margin-right: 10px;
}
.display-none{
display:none;
}
10px; }
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<link rel="stylesheet" href="/resources/demos/style.css">
<link rel="stylesheet" href="index.css" type="text/css"/>
</head>
<body>
<div class="list">
<div class="placeCard">
</div>
</div>
</div>
<p class="score"></p>
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<script src="./index.js"></script>
</body>
</html>