如何通过Javascript中的属性值获取另一个对象内的对象值
Posted
技术标签:
【中文标题】如何通过Javascript中的属性值获取另一个对象内的对象值【英文标题】:How to get an object value inside another object by a property value in Javascript 【发布时间】:2021-10-18 05:24:57 【问题描述】:我有一个这样的对象
const test =
'/blogs/architecture':
name: 'Architecture',
icon: 'archway',
iconCategory: 'fas',
slug: '/blogs/architecture'
现在我想找到 slug 字段,我只有 name 字段。如何通过名称找到蛞蝓?请帮忙
【问题讨论】:
如果你有name = "Architecture"
,那么你可以使用test[/blogs/$name.toLowerCase()
].slug。
如果名称是两个词,如“设计理念”和对象键“/blogs/design-ideas”,那么我该怎么办
那么你可以使用test[/blogs/$name.toLowerCase().split(" ").join("-")].slug
【参考方案1】:
尝试将Object.values()
与Array#find()
结合使用:
const test =
'/blogs/architecture':
name: 'Architecture',
icon: 'archway',
iconCategory: 'fas',
slug: '/blogs/architecture'
;
const findSlugByName = name =>
return Object.values(test).find(obj => obj.name === name)?.slug;
console.log(findSlugByName('Architecture'));
【讨论】:
【参考方案2】:const test =
'/blogs/architecture':
name: 'Architecture',
icon: 'archway',
iconCategory: 'fas',
slug: '/blogs/architecture'
,
'/blogs/architecture2':
name: 'Architecture2',
icon: 'archway',
iconCategory: 'fas',
slug: '/blogs/architecture'
const searchName = 'Architecture';
let searchResult;
const node = Object.values(test).forEach((node) =>
if(node.name === searchName)
searchResult = node;
);
console.log(searchResult);
【讨论】:
以上是关于如何通过Javascript中的属性值获取另一个对象内的对象值的主要内容,如果未能解决你的问题,请参考以下文章