Javascript 当满足If条件时,从json获取Key的值
我有一个JSON,其结构如下Javascript 当满足If条件时,从json获取Key的值,javascript,arrays,json,Javascript,Arrays,Json,我有一个JSON,其结构如下 [ {"key":1,"name":"aaa"}, {"key":2,"name":"bbb"} ] 我需要得到键为2的对象,我必须使它成为单独的数组 [ {"key":2,"name":"
[
{"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
,并且您想要获取所有对象,但是如果您想要获取主题对象的第一个匹配项,则结果是不同的。