如何基于另一个值[JavaScript]在对象数组中搜索特定值?
如何基于另一个值在对象数组中搜索特定值?例如,我拥有一篇文章的ID,并希望检查我是否拥有该特定文章ID所需的权限如何基于另一个值[JavaScript]在对象数组中搜索特定值?,javascript,arrays,object,Javascript,Arrays,Object,如何基于另一个值在对象数组中搜索特定值?例如,我拥有一篇文章的ID,并希望检查我是否拥有该特定文章ID所需的权限 Posts = [ { Id: '123', Permission: 'True', Name: 'XY' //Other key value pairs }, { Id: '456', Permission: 'False' Name: 'AB' //
Posts = [
{
Id: '123',
Permission: 'True',
Name: 'XY'
//Other key value pairs
},
{
Id: '456',
Permission: 'False'
Name: 'AB'
//Other key value pairs
}
];
我目前的做法是朝着这个方向
if (posts.some(e => e.Permission === true && e.Id == PostId)) {
return true;
} else {
return false ;
}
非常感谢您的支持。您可以使用过滤器
Posts = [
{
Id: '123',
Permission: 'True',
Name: 'XY'
//Other values
},
{
Id: '456',
Permission: 'False'
Name: 'AB'
//Other values
}
])
找到元素
const arr=arr.find(p=>p.property==someValue);
如果未找到元素,则返回undefined;如果找到元素,则返回元素
查找元素的索引
如果只需要索引,请使用findIdex
const index=arr.findIndex(p=>p.property==someValue);
如果未找到元素,它将返回-1
,如果找到,则返回索引
检查元素是否存在,即布尔值
您当前的实现可以做到这一点。你可以简单地退回
返回posts.some(e=>e.Permission==true&&e.Id==postd)
似乎您对如何使用来自其他地方的值在数组中进行搜索感到困惑,您可以始终传入回调并进行检查
value=>value.somProp==value1&&value.otherProp==value2 | | someOtherChek(值)
听起来这就是你需要的吗?谢谢@Subesh。你是对的,我把“e.Id”区分大小写搞混了。纠正后,一切正常。
let id='123';
let filtered=Posts.filter(i=> i. Permission===true && i.Id===id);