#javascript #angular #typescript
#javascript #угловой #typescript
Вопрос:
Я пытаюсь захватить конкретное свойство объекта в моем методе checkForUrgentEvents и вернуть его. Вместо того, чтобы ссылаться на него так, как я сейчас делаю, есть ли способ найти конкретное свойство? Я попробовал Object.hasownproperty, но поскольку он глубоко вложен, он не сработал.
private checkForUrgentEvents(urgentEventsData: any, query:CurrentContentParams) {
return urgentEventsData.data.Data[
query.type caasConfig.urgentContentIdSuffix
].content[query.id];
}
// urgentEventsData:
{ status: 200,
statusText: 'OK',
headers:
{ connection: 'close',
'transfer-encoding': 'chunked' },
config:
{ adapter: [Function: httpAdapter],
transformRequest: { '0': [Function: transformRequest] },
transformResponse: { '0': [Function: transformResponse] },
timeout: 0,
xsrfCookieName: 'XSRF-TOKEN',
method: 'get',
data:
{ LatestModified: 1555080079154,
Results: 1,
Error: '',
Data: { faqsurgentcontent: [Object] } } }
//query:
{ id: 'MAIN', type: 'faqs' }
Комментарии:
1. где находится MAIN и часто задаваемые вопросы в вашем объекте?
2. query.id является ОСНОВНЫМ и query.type является часто задаваемыми вопросами
Ответ №1:
У меня была похожая проблема, следуйте этому:
parseContentResponse(response: any, scope: string, type: string) {
if (response) {
return (
this.getContentObject(
response,
['data', 'Data', `${scope}`, 'content', `${type}`]
)
);
}
return response;
}
//then you could look for the key
private getContentObject(response: any, contentPathArray: Array<string>) {
return contentPathArray.reduce(
(obj, key) => (obj amp;amp; obj[key] !== 'undefined' ? obj[key] : undefined),
response
);
}
Ответ №2:
Вы можете попробовать это:
function findById(o, id) {
//Early return
if( o.id === id ){
return o;
}
var result, p;
for (p in o) {
if( o.hasOwnProperty(p) amp;amp; typeof o[p] === 'object' ) {
result = findById(o[p], id);
if(result){
return resu<
}
}
}
return resu<
}
Комментарии:
1. Но можем ли мы применить это в текущем контексте? поскольку запрос содержит идентификатор, а также тип