Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 根据每个值的内容筛选出JSON数组_Javascript_Arrays_Json_Object - Fatal编程技术网

Javascript 根据每个值的内容筛选出JSON数组

Javascript 根据每个值的内容筛选出JSON数组,javascript,arrays,json,object,Javascript,Arrays,Json,Object,假设使用JSON.parse,我在一个数组中得到了4个可能的答案(比如多项选择题)。该数组的每个值都有一个“特征”(我不知道如何调用它)。我希望通过数组的每个值查找特定的特征,并过滤掉那些不符合条件的值 示例阵列: 0: {correct: false} 1: {correct: true} 2: {correct: false} 3: {correct: false} 数组的第一个值(1)是正确答案,因为它的“特征”表示它为“真”。我想让控制台打印出正确的数值 正确答案是:1 感谢所有帮助您

假设使用JSON.parse,我在一个数组中得到了4个可能的答案(比如多项选择题)。该数组的每个值都有一个“特征”(我不知道如何调用它)。我希望通过数组的每个值查找特定的特征,并过滤掉那些不符合条件的值

示例阵列:

0: {correct: false}
1: {correct: true}
2: {correct: false}
3: {correct: false}
数组的第一个值(1)是正确答案,因为它的“特征”表示它为“真”。我想让控制台打印出正确的数值

正确答案是:1

感谢所有帮助

您可以使用它返回与条件匹配的数组第一个元素的索引

const arr=[
{正确:错误},
{正确:正确},
{正确:错误},
{正确:错误},
]
log(`正确答案是`+arr.findIndex(x=>x.correct))
As,您可以使用,但它将返回一个值—第一个满足条件的值。在您的示例中,如果有许多对象的
correct
键等于
true
,您仍然会得到其中一个

因此,如果希望所有对象都满足要求,有很多解决方案


Array#reduce
根据评论中的建议,您可以尝试使用

更短,并且在阵列上具有唯一的循环:

const arr=[
{正确:错误},
{正确:正确},
{正确:错误},
{正确:正确},
],
已过滤=arr.reduce((acc,item,index)=>((item.correct)?[…acc,index]:acc),[]);

log(`正确答案是${filtered.join(',')}`)我删除了旧的注释。
reduce()
single loop
arr.reduce((ac,a,I)=>a.correct?[…ac,I]:ac,[])
Nice(更好)建议。我把它加到了我的答案中快速说明:“JSON数组”不存在。