gpt4 book ai didi

javascript - 如何使用 forEach 从数组中获取特定值

转载 作者:行者123 更新时间:2023-12-03 11:58:31 25 4
gpt4 key购买 nike

正如标题所示。我该怎么做呢?

我一定会使用纯 JS,而且我对它真的很陌生(就像真的真的很新)。所以请原谅我的菜鸟问题。 :)

我的数组如下所示:

var questionArr = [
{
'questionId' : 'Question1',
'question' : 'Q1: How many Objects are there? ',
'choices' : [
{"id" : "10", "tf" : false, "points" : 0},
{'id' : "11", "tf" : false, "points" : 0},
{'id' : "12", "tf" : false, "points" : 0},
{'id' : "15", "tf" : true, "points" : 10},
{'id' : "16", "tf" : false, "points" : 0}
],
'Mchoice' : false,
'completed' : false
},
{
'questionId' : 'Question2',
'question' : 'Q2: some Question will go here? ',
'choices' : [

并且正在进行中。

如您所见,这是一个测验,我想获得“已完成”的值。我稍后将值更改为 true 以检查问题是否已得到解答。如果所选的每个问题至少有一个答案,则应启用提交按钮。

所以我正在考虑使用 forEach 循环来检查每个问题的 Completed 是否设置为 true 或 false。

我的 forEach 看起来像这样,至少到目前为止是这样。

questionArr.forEach(function(questionId, value){
console.log(questionId, value);
});

我真的不知道现在应该如何检查该值以及如何从那里继续启用我的按钮。对于按钮,我正在考虑这样的事情,现在这更像是一个可选问题,但很高兴知道我是否朝着正确的方向前进。

for(l = 0; l < questionArr[questionId].completed ; l++){
if (questionArr[l].completed === true){
button = document.getElementById("button").disabled = false;
}
}

我希望有人能帮助我解决这个问题。提前致谢。

最佳答案

根据您需要支持的浏览器,有两种方法可以实现此目的。

使用 forEach,最好的方法是这样做:

var allComplete = true;
questionArr.forEach(function(question, index) {
if(!question.completed)
allComplete = false;
});

// enable/disable your button based on the value of allComplete

您将一个函数传递给 forEach ,该函数将为数组中的每个元素调用。该函数最多可以接受三个参数:当前元素、该元素的索引以及调用 forEach 的数组。我们只对元素本身感兴趣,所以我可以只在函数签名中声明它。我已将元素的参数命名为 question,因为这就是它所指的内容;调用下一个 index 的原因应该是显而易见的。

但是,如果您需要支持的所有浏览器都支持它,则可以使用 every数组原型(prototype)上的函数:

var allComplete = questionArr.every(function(question, index) {
return question.completed;
});

// enable/disable your button based on the value of allComplete

关于javascript - 如何使用 forEach 从数组中获取特定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25500970/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com