TS / JS-如果对象的属性与数组中的另一个属性相匹配,则从对象数组中获取“值”
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TS / JS-如果对象的属性与数组中的另一个属性相匹配,则从对象数组中获取“值”相关的知识,希望对你有一定的参考价值。
问题:
我有一个对象数组。还有我当前正在查看的currentObject。如果两个其他属性匹配,我想从对象数组的属性中获取值。
这里是数组,简化了:
ARRAY = [
id: 1,
metadata: author: "Company1"
,
id: 2,
metadata: author: "Company2"
这里是对象,简化了:
OBJECT =
name: "Something
templateId: 2
因此,基本上,我想返回metdata.author
信息,如果ARRAY.id
与OBJECT.templateId
匹配。
这是我写的代码。
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
关于如何进行这项工作的任何想法?我也尝试在相同的条件下使用filter
,但是当我在ReactComponent中调用它时返回了undefined
。
答案
这是您需要的吗?
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))
另一答案
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);
以上是关于TS / JS-如果对象的属性与数组中的另一个属性相匹配,则从对象数组中获取“值”的主要内容,如果未能解决你的问题,请参考以下文章