PROBLEM:
Mam tablicę obiektów. I currentObject, który obecnie przeglądam. Chcę uzyskać wartość z właściwości, która pochodzi z tablicy obiektów, jeśli 2 inne właściwości są zgodne.
Oto tablica, uproszczona:
ARRAY = [{
id: 1,
metadata: {author: "Company1"}
},
{
id: 2,
metadata: {author: "Company2"}
}
Oto obiekt, uproszczony:
OBJECT = {
name: "Something
templateId: 2
}
Zasadniczo chcę więc zwrócić informacje metdata.author
, jeśli ARRAY.id
pasuje do OBJECT.templateId
..
Oto kod, który napisałem ...
const getAuthorInfo = (connTemplates: ARRAY[], currentConn: ITEM_OBJECT) => {
connTemplates.find((connTemplate: ARRAY_ITEM_OBJECT) => connTemplate.id === currentConn.templateId);
};
console.log('Author Info:', connection); // This though returns the OBJECT, not the ARRAY_ITEM
Jakieś pomysły, jak to działa? Próbowałem też filter
, z tym samym warunkiem, ale to zwróciło undefined
, kiedy wywołałem to w moim ReactComponent.
0
user10104341
17 grudzień 2019, 12:54
2 odpowiedzi
Czy tego potrzebujesz?
const arr = [{
id: 1,
metadata: { author: "Company1" }
},
{
id: 2,
metadata: { author: "Company2" }
}]
const obj = {
name: "Something",
templateId: 2
}
function getAuthorInfo(arr, obj) {
const arrItem = arr.find(item => item.id === obj.templateId)
return arrItem.metadata.author
}
console.log(getAuthorInfo(arr, obj))
0
SakoBu
17 grudzień 2019, 13:08
Zwraca OBIEKT. Nie obiekt z tablicy. Więc informacji tam nie ma...
– user10104341
17 grudzień 2019, 13:13
Jesteś na dobrej drodze:
const result = arr.find(f => f.id == obj.templateId).metadata.author;
const arr = [{
id: 1,
metadata: {author: "Company1"}
},
{
id: 2,
metadata: {author: "Company2"}
}]
const obj = {
name: "Something",
templateId: 2
}
const result = arr.find(f => f.id == obj.templateId);
console.log(result);
0
StepUp
17 grudzień 2019, 13:23
1
Myślę, że chce zagłębić się w obiekt i znaleźć prawdziwego autora...
– SakoBu
17 grudzień 2019, 13:13
Chyba się myliłem... na podstawie odpowiedzi na moją odpowiedź... nie jestem pewien, czy rozumiem pytanie...
– SakoBu
17 grudzień 2019, 13:16
return
zgetAuthorInfo
otrzymasz przedmiot zARRAY
. Następnie użyj.metadata.author
, aby uzyskać autora.find()
naconnTemplates
, który jest twoją tablicą. W zamian możesz uzyskać tylkoundefined
lub obiekt z tablicy, nie widzę, jak otrzymujeszOBJECT
jako zwrot?