javascript - 通过JSON技术扫描

标签 javascript jquery html json

我有这个 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/

相关文章:

javascript - 按地点 ID 传递数组值反转地理编码

javascript - 动态坐标谷歌地图无法加载

javascript - 为什么我必须推迟 customElement 定义?

jquery - 使用 $this 进行选择

javascript - 我可以将相同的dust.js 模块与不同的部分一起使用吗?

javascript - 用更安全的东西替换 eval

java - 如何获取搜索结果并在 struts 2 应用程序中使用数据表呈现它们

html - 防止 Coldfusion 编码 html

css - 从屏幕左侧到居中 div 末端的线

javascript - 更改 HTML 图像源