如何基于另一个值[JavaScript]在对象数组中搜索特定值?

如何基于另一个值[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' //

如何基于另一个值在对象数组中搜索特定值?例如,我拥有一篇文章的ID,并希望检查我是否拥有该特定文章ID所需的权限

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);