我正在尝试创建一个应用程序,其中某些值以JSON格式存储,我想使用索引访问这些值而不是硬编码。我的HTML文件和javascript是:
<html>
<head>
<title> My Dictionary </title>
<script type="text/javascript">
function search(){
var myDictionary =
{"Apple":
{"Meaning": "Fruit", "Category": "Sweet", "Pronounciation": "Apple"}
,
"Apples":
{"Meaning": "Fruit", "Category": "Sweet", "Pronounciation": "Apple"}}
};
var v= document.getElementById("search").value;
}
</script>
</head>
<body>
Enter your Text: <input type="text" id="search" name="search" />
<input type="button" value="search" onclick="search();" />
</body>
</html>
我想将用户输入的值与JSON格式的数据进行比较。例如。如果用户输入“Apples”,那么如何使用数组中的值检查?
答案 0 :(得分:0)
我不确定这是否是最有效的方法,但它是一种方式:您可以遍历myDictionary
数组并使用组合检查属性v
是否存在typeof
和括号表示法。这是一个例子:
var result;
for (var i=0; i<myDictionary.length; i++)
{
if (typeof myDictionary[i][v] === "object")
{
result = myDictionary[i];
break;
}
}
我将myDictionary对象复制到我的控制台,将v设置为“Apple”,运行我的代码,结果成功包含Apple对象。重要的是要注意JavaScript变量/属性区分大小写,因此如果用户键入“apple”而不是“Apple”,则不会得到结果。管理此方法的最简单方法是确保所有词典关键字均为小写,并使用v.toLowerCase()
。
让我知道您的想法,或者如果您有任何疑问:)