Javascript 通过JSON技术进行扫描
我有一个关于微笑的JSON列表:Javascript 通过JSON技术进行扫描,javascript,jquery,html,json,Javascript,Jquery,Html,Json,我有一个关于微笑的JSON列表: var smiliesList = { "sm-1": ":)", "sm-2": ":(", "sm-3": ";)" } 有很多超过3个 在代码的另一部分中,我使用smiliesList[“sm-1”]来获取“:”。然而,我现在想得到相反的结果。我有一个文本字符串,我想浏览整个笑脸列表,并将“:”替换为“sm-1”等等。这意味着使用smiliesList[“:)”]来获取“sm-1” 因此,有两个部分: 1.如何浏览整个JSON? 2.如何获取
var smiliesList = {
"sm-1": ":)",
"sm-2": ":(",
"sm-3": ";)"
}
有很多超过3个
在代码的另一部分中,我使用smiliesList[“sm-1”]来获取“:”。然而,我现在想得到相反的结果。我有一个文本字符串,我想浏览整个笑脸列表,并将“:”替换为“sm-1”等等。这意味着使用smiliesList[“:)”]来获取“sm-1”
因此,有两个部分:
1.如何浏览整个JSON?
2.如何获取相反的变量字符串
现在有办法做到这一点吗?有解决办法吗?谢谢您可以使用以下语句迭代对象属性:
function getKeyByValue (obj, val) {
for (var key in obj) {
if (obj.hasOwnProperty(key) && obj[key] == val) {
return key;
}
}
}
getKeyByValue (smiliesList, ":)"); // sm-1
当使用for…in时,您必须是,因为它会遍历通过原型链继承的所有成员,因为始终建议使用该函数检查对象是否具有直接定义的属性 您还可以使用jQuery帮助您使用更简单的语法:
var smiliesList = {"sm-1":":)","sm-2":":(","sm-3":";)"}
$.each(smiliesList, function(index, value){
console.log(index + " " + value);
});
这将输出到控制台:
sm-1 :)
sm-2 :(
sm-3 ;)