我有这个 JSON 表情符号列表:
var smiliesList = {
"sm-1": ":)",
"sm-2": ":(",
"sm-3": ";)"
}
有很多超过 3 个。
在代码的另一部分,我使用smiliesList["sm-1"] 来获取“:)”。然而,我现在想要得到相反的结果。我有一个文本字符串,我想遍历整个表情列表并将“:)”替换为“sm-1”等。这意味着使用 smliesList[":)"] 来获取“sm-1”。
所以有两部分: 1.如何遍历整个JSON? 2. 如何获取相反的变量字符串?
现在有办法做到这一点吗?有什么解决办法吗?谢谢
最佳答案
您可以使用 for...in 迭代对象属性声明:
function getKeyByValue (obj, val) {
for (var key in obj) {
if (obj.hasOwnProperty(key) && obj[key] == val) {
return key;
}
}
}
getKeyByValue (smiliesList, ":)"); // sm-1
你必须是careful当使用 for...in 时,因为它会迭代通过原型(prototype)链继承的所有成员,因此始终建议检查对象是否具有直接定义的属性,方法是使用 hasOwnProperty功能。
关于javascript - 通过JSON技术扫描,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1355961/