让我们说我的本地存储中有以下json
top: [ {"id","one","name":"java"},
{"id","two","name","javascript"},
{"id","three","name","jquery"]
]
这里的问题是如何通过使用名称值来获取id?
例如,如果我想获取id值"two"
,我需要能够使用"javascript"
进行查询,然后达到值"two"
。
有没有办法解决上述问题?
答案 0 :(得分:2)
让我们将您的输入转换为对象,然后将其作为属性
进行访问
var input = [{
"id":"one",
"name":"java"
},
{
"id":"two",
"name":"javascript"
},
{
"id":"three",
"name":"jquery"
}];
var result = input.reduce((acc, b) => {
acc[b.name] = b.id;
return acc;
}, {});
console.log(result['javascript']);

答案 1 :(得分:0)
尝试使用Array#find
。您的json无效。您可以更改下面的格式
var toper = [{
"id": "one",
"name": "java",
},
{
"id": "two",
"name": "javascript",
},
{
"id": "three",
"name": "jquery",
}
]
function find_id(str) {
return toper.find((a) => {
if (a.name == str.trim()) {
return a
}
}).id
}
console.log(find_id('javascript'))
答案 2 :(得分:0)
你的JSON有一些拼写错误。它应该像上面的Tai的例子。
从本地存储中检索它(作为文本)并使用它(作为json对象):
var myJson = JSON.parse(myText)
然后:
for (var i=0 ; i<myJson.length ; i++) {
if myJson[i].name == "javascript" {
var a = myJson[i].id;
console.log(a);
}
}