我有一个用于微笑的JSON列表:
var smiliesList = {
"sm-1": ":)",
"sm-2": ":(",
"sm-3": ";)"
}这里有三个以上的。
在代码的另一部分中,我使用smiliesList"sm-1“来获取":)”。然而,我现在想得到相反的结果。我有一个文本字符串,我想遍历整个smiliesList并将":)“替换为"sm-1”等等。这意味着使用smiliesList":)“获取"sm-1”。
因此有两个部分: 1.如何遍历整个JSON? 2.如何获得相反的变量字符串?
现在有办法这样做吗?有什么解决办法吗?谢谢
发布于 2012-08-07 19:54:36
您还可以使用jQuery帮助您使用更简单的语法:
var smiliesList = {"sm-1":":)","sm-2":":(","sm-3":";)"}
$.each(smiliesList, function(index, value){
console.log(index + " " + value);
});这将输出到控制台:
sm-1 :)
sm-2 :(
sm-3 ;)发布于 2009-08-31 05:47:07
可以使用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,因为它遍历通过原型链继承的所有成员,因为总是建议通过使用hasOwnProperty函数来检查对象是否具有直接定义的属性。
https://stackoverflow.com/questions/1355961
复制相似问题