Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过JSON技术进行扫描_Javascript_Jquery_Html_Json - Fatal编程技术网

Javascript 通过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.如何获取

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

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 ;)