Javascript array.find()始终显示相同的数组

Javascript array.find()始终显示相同的数组,javascript,jquery,arrays,Javascript,Jquery,Arrays,我目前正在学习JS/jQuery,我想编写一个测试代码进行练习。虽然我成功地编写了测试的基本代码,但我仍在努力编写代码中的一个关键部分 在这个测验中,我有一个包含10个对象的数组。每个对象都有一个问题(字符串)、一个选项(数组)、一个答案(字符串)和一个布尔值,用于指示是否已回答问题。此外,我对该数组进行过滤,使其仅包含那些尚未询问/回答的元素。然而,这个unansweredArr总是包含10个元素,即使我在问新问题之前再次调用该函数 我的目标是: 生成一个数组,该数组包含所有未解决的问题 还没

我目前正在学习JS/jQuery,我想编写一个测试代码进行练习。虽然我成功地编写了测试的基本代码,但我仍在努力编写代码中的一个关键部分

在这个测验中,我有一个包含10个对象的数组。每个对象都有一个问题(字符串)、一个选项(数组)、一个答案(字符串)和一个布尔值,用于指示是否已回答问题。此外,我对该数组进行过滤,使其仅包含那些尚未询问/回答的元素。然而,这个unansweredArr总是包含10个元素,即使我在问新问题之前再次调用该函数

我的目标是:

  • 生成一个数组,该数组包含所有未解决的问题 还没有回答。这项工作正在进行中
  • var unansweredArr=data.filter(函数(问题){
    返回问题。已回答===错误;
    });

  • 然后我生成一个随机数,用于从这个数组中获取一个元素。然后,所述元素将显示在我的HTML中
  • 当玩家点击一个选项时,给出的答案将被检查。如果正确,玩家的分数将增加1,并询问下一个问题。对于该特定问题,
    answered:false
    也将设置为
    answered:true
  • 在第三步之前,每件事都像一个符咒(对我来说;))然而,第四步和更进一步是我的主要问题

  • 基本上,应该重复第2步和第3步。因此,数组应该过滤每个回答为
    的对象:false
    。此数组现在应该更新并包含9个元素,但是它没有更新。它仍然包含10个元素,我不知道为什么。我尝试再次调用过滤器函数,但没有成功。我试着通过移动一些零碎的东西来重构一些代码,但没有任何效果。此外,在检查正确答案时,第一次回答的问题的答案似乎已保存,并将用于所有其他问题
  • 请在此处找到我的代码:

    var数据=[{
    问题:“Cabrio:检查!Glas wird geext/Na klar gibt S Sex,Well ich Parshipe jetzt!”,
    选项:[“Gzuz”、“Bonez MC”、“皇家空军卡莫拉”、“LX”],
    答:"Gzuz",,
    回答:错
    },
    {
    问题:“媒体将在邦德法尔泽根的刀剑中制造怪物,这是一种自然的武器,是一种闪电战,是一种恶作剧!”,
    选项:[“Kollegah”、“Farid Bang”、“Ali As”、“Fatoni”],
    回答:“Kollegah”,
    回答:错
    },
    {
    问题:“弗雷格:哈本·艾因·拉比、艾因·普里斯特、艾因·科赫是不是有三个艾恩/艾因·弗雷尔·泰勒是不是有三个艾恩/艾因·帕克特·弗雷恩/艾因·埃塞尔、兹维·盖尔、我和三百个弗雷尔·盖恩萨姆?/Könnten alle dein Vadder sein!”,
    选项:[“斯纳加”、“皮拉特”、“火炬”、“KC叛军”],
    回答:“斯纳加”,
    回答:错
    },
    {
    问题:“我的天哪,你是不是在一个聚会的房间里/我的房间里,我在公园里?”,
    选项:[“塔瑞克”、“马克西姆”、“尼科”、“DJ工艺”],
    回答:“塔瑞克”,
    回答:错
    },
    {
    问题:“说唱歌手雷登·穆斯凯尔·奥德·布鲁斯图姆芳/我是斯克莱夫人,我是一个很好的朋友。”,
    选项:[“Shindy”、“Bushido”、“Fler”、“Sido”],
    回答:“Shindy”,
    回答:错
    },
    {
    问题:“Widerlich,Bitch!/还有glaub nicht,dass du Hund hier'n Aufreißer wirst(Hirn auf Reis servierst)wie'n China Imbiss”,
    选项:[“Kollegah”、“Majo”、“Jizi”、“Gozpel”],
    回答:“Kollegah”,
    回答:错
    },
    {
    问题:“我不知道你是谁——我不知道!”,
    选项:[“库尔萨瓦斯”,“埃科新鲜”,“莫伊米切尔”,“卡阿斯”],
    回答:“库尔萨瓦斯”,
    回答:错
    },
    {
    问题:“我是布拉克·帕拉,该死的F*ckf*tzen blasen,我是修理工tragen,我是Rick Ross nicht zahlen。”,
    选项:[“SSIO”、“Schwester Ewa”、“Xatar”、“Abdi”],
    回答:“SSIO”,
    回答:错
    },
    {
    问题:“Hater schauen and bauen sich einen Fake Account,doch wissen,dass mein专辑hitlastig ist/希特勒Dick isst wie Eva Braun.”,
    选项:[“Ali As”、“Kollegah”、“Farid Bang”、“Majo”],
    回答:“阿里作为”,
    回答:错
    },
    {
    问题:“Dein Rap是voller Tiefsiningkeit/达斯人als Zuhörer denkt,Dein Schniedel是klein”,
    选项:[“SSIO”、“Edgar Wasser”、“Juse Ju”、“Azad”],
    回答:“SSIO”,
    回答:错
    },
    ];
    //生成一个分数变量
    var得分=0;
    //生成一个数组,其中包含所有未回答的问题
    var unansweredArr=data.filter(函数(问题){
    返回问题。已回答===错误;
    });
    //随机数,以便从数组中获取随机元素
    var randomIndex=Math.floor(Math.random()*unansweredArr.length);
    //在HTML中显示随机元素/问题
    $(“#问题”).text(未回答的arr[randomIndex].question);
    对于(变量i=0;i<4;i++){
    $(“#选项”+(i+1)).text(unansweredArr[randomIndex]。选项[i]);
    }
    //当这个人回答问题时会发生什么
    $(“.Rapper”)。在(“单击”,函数(){
    unansweredArr[randomIndex]。已回答=真;
    所选变量=$(this).text();
    var trueAnswer=unansweredArr[randomIndex]。答案;
    //检查答案是否正确
    if(auswahl==wahreAntwort){
    //将分数提高1,然后问下一个问题
    控制台日志(“正确”);
    next();
    返回分数=分数+1;
    }否则{
    控制台日志(“错误”);
    next();
    返回分数;
    }
    });
    函数next(){
    var unansweredArr=data.filter(函数(问题){
    返回问题。已回答===错误;
    });
    //检查未回答问题的数组是否为空
    如果(未应答的到达长度!==0){
    //新随机数
    var randomIndex=Math.floor(Math.random()*unansweredArr.length);
    //在html中显示问题和选项
    $(“#问题”).text(未回答的arr[randomIndex].question);
    对于(变量i=0;i<4;i++){
    $(“#作品
    
    unansweredArr[randomIndex].answered = true;