我有这个用于表情符号列表的JSON
var smiliesList = {
"sm-1":":)",
"sm-2":":(",
"sm-3":";)"
}
实际上有3个以上。
在代码的其他部分,我使用smiliesList [“sm-1”]来获取“:)”。但是,我现在想要反其道而行之。我有一个文本字符串,我想通过整个smiliesList并用“sm-1”替换“:)”等等。这意味着使用smiliesList [“:)”]来获得“sm-1”。
所以有两个部分: 1.如何浏览整个JSON? 2.如何获得相反的变量字符串?
现在有办法做到这一点吗?任何解决方法?感谢
答案 0 :(得分: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
使用for ... in时必须是careful,因为它遍历通过原型链继承的所有成员,因为总是建议检查对象是否具有直接定义的属性,使用hasOwnProperty函数。
答案 1 :(得分:1)
您还可以使用jQuery帮助您使用更简单的语法:
var smiliesList = {"sm-1":":)","sm-2":":(","sm-3":";)"}
$.each(smiliesList, function(index, value){
console.log(index + " " + value);
});
这将输出到控制台:
sm-1 :)
sm-2 :(
sm-3 ;)