javascript - 如何通过值 [JS] 获取对象的属性名称
问题描述
questions={
1:{
quest: "blah blah blah",
answers: ["1812", "1837", "1864", "1899"],
correct: "1837"
},
2:{
quest: "fasfa asf",
answers : ["2","3","4","5"],
correct : "3"
}
}
例如,我知道1
. 我需要获取该对象的名称及其值。
var x = {quest: "blah blah blah",
answers: ["1812", "1837", "1864", "1899"],
correct: "1837"}
returnNameOf(x)
预期输出1
;
解决方案
您可以使用find()
和Object.keys()
比较对象JSON.stringify()
let questions={
1:{
quest: "blah blah blah",
answers: ["1812", "1837", "1864", "1899"],
correct: "1837"
},
2:{
quest: "fasfa asf",
answers : ["2","3","4","5"],
correct : "3"
}
}
let val = {
quest: "fasfa asf",
answers : ["2","3","4","5"],
correct : "3"
}
function getKey(obj,value){
if(typeof value === "object"){
value = JSON.stringify(value);
return Object.keys(obj).find(key => JSON.stringify(obj[key]) === value);
}
else return Object.keys(obj).find(key => obj[key] === value);
}
console.log(getKey(questions,val));
推荐阅读
- css - 使用 VS2019 Blazor App 和 ASP.NET Core Web 应用程序模板创建的菜单导航栏的定位
- javascript - 你如何在 React Native 中传递对象?
- javascript - 如何获取标签内的单选按钮,该标签位于 div 内?
- django - Django rest 框架 simple-jwt 错误“详细信息”:“没有找到具有给定凭据的活动帐户”
- c# - FtpWebRequest ProtocolViolationException
- python - 将数据框中的值列表附加到新列
- javascript - 如何为按钮(在网格中)提供滑动效果?
- ajax - 服务器端 Ajax 的对应物
- android - Android通过minicap拍摄快照,返回文件都是0bytes
- python - 如何在 Redis 缓存中设置值,使用 Python 由同一列名下的多行组成