如何打印按道具值筛选的对象的道具名称



我有一个对象

var arr = {
alfa: {
name: "a",
id: "1"
},
beta: {
name: "b",
id: "2"
}}

我想记录第二个道具"测试版"的标题

我找不到具有"find"的道具值

Object.values(arr).find(obj => {
return obj.id === '2'
})

但是我如何提取道具名称

在日志中,我想这样打印:

console.log('second prop name is ', extractPropNameById(2))

结果必须是这样的:

"第二道具名称是"贝塔";

Object.keys(arr)只返回道具数组["alfa", "beta"]按id查找返回undefinded

正如@GuyIncognito在提到的评论中所说,你可以获得密钥,然后根据你想要的密钥的id属性进行过滤。

var arr = {
alfa: {
name: "a",
id: "1"
},
beta: {
name: "b",
id: "2"
}
}

console.log("second prop name is " + extractPropNameById("2", arr));
function extractPropNameById(searchID, arra) {
let keys = Object.keys(arra);
let result = keys.find(key => arra[key].id === searchID);
return result;
}

最新更新