Angular 方法来筛选数组

Angular 方法来筛选数组,angular,typescript,Angular,Typescript,我正在angular中进行一个实现,以查看数组,并根据定义的名称获取值 let definitions = [ { definitionsTest1: [ { headerName: 'Status', field: 'status', filter: true, sortable: true }, { headerName: 'Name', field: 'name', filter

我正在angular中进行一个实现,以查看数组,并根据定义的名称获取值

let definitions = [
{
  definitionsTest1: [
    {
      headerName: 'Status',
      field: 'status',
      filter: true,
      sortable: true
    },
    {
      headerName: 'Name',
      field: 'name',
      filter: true,
      sortable: true
    },
    {
      headerName: 'Project',
      field: 'project',
      filter: true,
      sortable: true
    }
  ]
},
{
  definitionsTest2: [
    {
      headerName: 'Status',
      field: 'status',
      filter: true,
      sortable: true
    },
    {
      headerName: 'Name',
      field: 'name',
      filter: true,
      sortable: true
    },
    {
      headerName: 'Project',
      field: 'project',
      filter: true,
      sortable: true
    }
  ]
}
]
我正在做数组,所以我可以更改它。但是我的想法是找到,但是因为他们有不同的名字,我不能这样写

return definitions.find(x => x === 'definitionsTest2')
或者至少我不确定,我如何在那里应用
find
方法

你能帮我一下吗,或者给我一些关于我应该如何改变阵列或者我该怎么做的想法吗

注意
我可以更改数组或在其上添加新内容,但
名称(definitionsTest1和definitionsTest2)应该在那里。

首先,如果每个定义对象都指定了属性,则不需要数组。
定义
数组可以是一个对象。大概是这样的:

let definitions = {
   definitionsTest1: {...},
   definitionsTest2: {...},
   ...
};
您可以获取初始对象的关键点,并查看所需的关键点是否存在

要获取密钥,只需使用
Object.keys()

然后搜索所需的密钥:

let key = '...';
let result;

if (keys.indexOf(key) !== -1) {
    result = definitions[key];
}

希望这有帮助。

您可以检查对象键是否包含您要查找的键,如:

return definitions.find(x => Object.keys(x).includes('definitionsTest2'))

返回定义.find(x=>x==='definitionsTest2')
定义.definitionsTest2
相同。我不明白问题出在哪里。定义st2的名称是对象定义中的变量。@Pauho我尝试过这样做,只需放入
definitions.definitionst2
,它给了我一个错误
属性“definitionst2”不存在
一个简单的方法:
定义。查找(x=>console.log(object.keys(x.toString()==“definitionst2”)
return definitions.find(x => Object.keys(x).includes('definitionsTest2'))