首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过JSON技术扫描

通过JSON技术扫描
EN

Stack Overflow用户
提问于 2009-08-31 05:43:18
回答 2查看 2.6K关注 0票数 2

我有一个用于微笑的JSON列表:

代码语言:javascript
复制
var smiliesList = {
  "sm-1": ":)",
  "sm-2": ":(",
  "sm-3": ";)"
}

这里有三个以上的。

在代码的另一部分中,我使用smiliesList"sm-1“来获取":)”。然而,我现在想得到相反的结果。我有一个文本字符串,我想遍历整个smiliesList并将":)“替换为"sm-1”等等。这意味着使用smiliesList":)“获取"sm-1”。

因此有两个部分: 1.如何遍历整个JSON? 2.如何获得相反的变量字符串?

现在有办法这样做吗?有什么解决办法吗?谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-07 19:54:36

您还可以使用jQuery帮助您使用更简单的语法:

代码语言:javascript
复制
var smiliesList = {"sm-1":":)","sm-2":":(","sm-3":";)"}
$.each(smiliesList, function(index, value){

    console.log(index + " " + value);

});

这将输出到控制台:

代码语言:javascript
复制
sm-1 :)
sm-2 :(
sm-3 ;)
票数 2
EN

Stack Overflow用户

发布于 2009-08-31 05:47:07

可以使用for...in语句迭代对象属性:

代码语言:javascript
复制
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函数来检查对象是否具有直接定义的属性。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1355961

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档