Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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 当满足If条件时,从json获取Key的值_Javascript_Arrays_Json - Fatal编程技术网

Javascript 当满足If条件时,从json获取Key的值

Javascript 当满足If条件时,从json获取Key的值,javascript,arrays,json,Javascript,Arrays,Json,我有一个JSON,其结构如下 [ {"key":1,"name":"aaa"}, {"key":2,"name":"bbb"} ] 我需要得到键为2的对象,我必须使它成为单独的数组 [ {"key":2,"name":"

我有一个JSON,其结构如下

                   [
                          {"key":1,"name":"aaa"},
                          {"key":2,"name":"bbb"}

               ]
我需要得到键为2的对象,我必须使它成为单独的数组

                         [

                          {"key":2,"name":"bbb"}

                         ]

例如,我只给出了2个对象,它可以超过100个。有人能帮我高效地实现这一点吗

使用
过滤器

var result = data.filter(function(val){
   return val.key==2;
});
我希望能有所帮助:)

Array#find
可能会有所帮助

let obj = arr.find(v => v.key == 2);
如果要将其存储在阵列中:

let obj = [arr.find(v => v.key == 2)];
或循环方法(当条件满足时-断开循环):

让arr=[{
"关键":一,,
“名称”:“aaa”
},
{
"关键":二,,
“名称”:“bbb”
}
];
设res=[];
对于(让arr的元素){
如果(元素键==2){
再推(elem);
打破
}
}

控制台日志(res)感谢您的快速响应。此方法是否比array.find()有效。我的意思是,当我们有100多个目标时,哪一个更好呢?我不知道是否有这方面的基准
filter
运行到数组末尾,并对每个项调用其回调;与
find
相反,find在找到一个后停止。当回调对其中一个额外迭代的元素抛出异常时,结果是不同的。
.filter()
如果您有多个对象的
key
属性为
1
,并且您想要获取所有对象,但是如果您想要获取主题对象的第一个匹配项,则结果是不同的。