[英]find object key in nested array object
I have an object I would get {FIABILITE:XXX,RECTIVITE:YYY}
of region=AAA
( or other) in VOYAGES
( I dont need to search in ICC
) 我有一个对象,我会得到
{FIABILITE:XXX,RECTIVITE:YYY}
的region=AAA
(或其他)在VOYAGES
(我不需要在搜索ICC
)
Here's how I'm trying to get data 这就是我试图获取数据的方式
const activityName = 'VOYAGES' // activityName: VOYAGES Or ICC const queryParams = [',','region=AAA'] const objectifs = { 'VOYAGES': [ { 'region=AAA': { FIABILITE: '75', REACTIVITE: '90' } }, { 'region=BBBB': { FIABILITE: '75', REACTIVITE: '86' } } ], 'ICC': [ { 'region=CSIC': { FIABILITE: '45', REACTIVITE: '80' } } ] } const objKeys = Object.values(objectifs[activityName]) const index = objKeys.indexOf((queryParams[1])); const data = objectifs[activityName][index]; console.log(data)
Actualy data
is undefined. 实际
data
是不确定的。
I want to get {FIABILITE:XXX,RECTIVITE:YYY}
of region=AAA
for example 例如,我想获取
region=AAA
{FIABILITE:XXX,RECTIVITE:YYY}
It's because of how your object is created that you're getting undefined, you need to add an index objectifs['VOYAGES'][0]['region=AAA']
as so : 由于未定义对象是如何创建的,因此需要添加索引
objectifs['VOYAGES'][0]['region=AAA']
如下所示:
objectifs = { 'VOYAGES': [{ 'region=AAA': { FIABILITE: '75', REACTIVITE: '90' } }, { 'region=BBBB': { FIABILITE: '75', REACTIVITE: '86' } } ], 'ICC': [{ 'region=CSIC': { FIABILITE: '45', REACTIVITE: '80' } }] } var data = {} objectifs['VOYAGES'].forEach(function(element) { if ('region=AAA' in element) { data = element['region=AAA']; } }); console.log(data)
You can try: 你可以试试:
const queryParams = [',','region=AAA'] const activityName = 'VOYAGES' const searchKey = queryParams[1]; objectif={'VOYAGES': [ { 'region=AAA': { FIABILITE: '75', REACTIVITE: '90' } }, { 'region=BBBB': { FIABILITE: '75', REACTIVITE: '86' } } ], 'ICC': [ { 'region=CSIC': { FIABILITE: '45', REACTIVITE: '80' } } ]}; let resultData = objectif[activityName].find((entry) => { return entry[searchKey]; })[searchKey]; console.log("Result data: ", resultData);
You can find the index
in the array of the object with a specific property using: 您可以使用以下
index
在具有特定属性的对象数组中找到index
:
const index = objectifs[activityName].findIndex(x => !!x[queryParams[1]])
Working Example: 工作示例:
const activityName = 'VOYAGES' // activityName: VOYAGES Or ICC const queryParams = [',','region=AAA'] const objectifs = { 'VOYAGES': [ { 'region=AAA': { FIABILITE: '75', REACTIVITE: '90' } }, { 'region=BBBB': { FIABILITE: '75', REACTIVITE: '86' } } ], 'ICC': [ { 'region=CSIC': { FIABILITE: '45', REACTIVITE: '80' } } ] } const index = objectifs[activityName].findIndex(x => x.hasOwnProperty([queryParams[1]])); const data = objectifs[activityName][index]; console.log(data) const obj = data[queryParams[1]]; console.log(obj)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.