如何使用javascript访问JSON数据库
如何找到值为“Anna”的“firstname”,并使用JavaScript在末尾显示她的“lastname”?这只是一个虚拟的例子,让我了解它是如何工作的如何使用javascript访问JSON数据库,javascript,json,Javascript,Json,如何找到值为“Anna”的“firstname”,并使用JavaScript在末尾显示她的“lastname”?这只是一个虚拟的例子,让我了解它是如何工作的 var员工=[ { “名字”:“约翰”, “姓氏”:“能源部” }, { “名字”:“安娜”, “姓氏”:“史密斯” }, { “名字”:“彼得”, “姓氏”:“琼斯” } ]; document.getElementById(“demo”).innerHTML= 雇员姓名 您必须迭代并检查该值,然后执行您想要的操作: for (var
var员工=[
{
“名字”:“约翰”,
“姓氏”:“能源部”
},
{
“名字”:“安娜”,
“姓氏”:“史密斯”
},
{
“名字”:“彼得”,
“姓氏”:“琼斯”
}
];
document.getElementById(“demo”).innerHTML=
雇员姓名代码>
您必须迭代并检查该值,然后执行您想要的操作:
for (var i = 0; i < employees.length; i++) {
if (employees[i].firstName == "Anna") {
document.getElementById("demo").innerHTML = employees[i].lastName;
break;
}
}
您需要在对象中循环并找到要查找的键的值。
我做过类似的事情
var quality = function(obj) {
if (obj.quality === 'source') {
return obj;
}
};
context.download.filter(quality)[0].link;
此筛选器应返回与新数组中的筛选器匹配的每个对象。对于更复杂的查询,您还可以使用JSON查询语言,例如(惊奇!)
遍历第一个数组并使用条件查找值“anna”,然后像employees[i].lastName那样访问它。下面是一个工作示例
Html
var员工=[{
“名字”:“约翰”,
“姓氏”:“能源部”
}, {
“名字”:“安娜”,
“姓氏”:“史密斯”
}, {
“名字”:“彼得”,
“姓氏”:“琼斯”
}];
用于(员工中的var i){
if(雇员[i].firstName=='Anna'){
document.getElementById(“demo”).innerHTML=employees[i].lastName;
}
}
对于某些较旧的浏览器,无法获取对象长度。但是如果你有一个数组而不是一个对象,我建议你使用这个方法。但是向后循环而不是向前循环。@RichardGrant——这是一个数组——上面的代码从不使用对象长度。为什么要向后循环而不是向前循环呢?哎呀,我并没有把代码看得太多。你的代码可以工作。我道歉。当你向前循环时,你的循环需要不断地检查项目的长度,这会导致循环运行得更慢。关于这一点有很多文档。@RichardGrant--Idk速度要慢得多,性能增益非常小-不需要这么快优化。太好了!谢谢。最后一个问题,如果我有一个以上的“Anna”,如何在一行中显示它们的所有“LastName”?不要在数组中使用for
语法,这意味着迭代对象属性。没有理由相信这种类型的for循环仅用于数组。唯一的区别是for循环将捕获项目原型用于迭代对象属性。
var e = [
{
"firstName":"John",
"lastName":"Doe"
},
{
"firstName":"Anna",
"lastName":"Smith"
},
{
"firstName":"Peter",
"lastName":"Jones"
}
];
for (var i = e.length - 1; i >= 0; i--) {
if (e[i].firstName == "Anna") {
console.log(e[key]['firstName'] + ', ' + e[key]['lastName']);
break;
}
};
var quality = function(obj) {
if (obj.quality === 'source') {
return obj;
}
};
context.download.filter(quality)[0].link;
var jsonQuery = require('json-query')
var data = {
employees: [
{firstName: 'John', lastName: 'Doe'},
{firstName: 'Anna', lastName: 'Smith'},
{firstName: 'Peter', lastName: 'Jones'}
]
}
jsonQuery('employees[firstName=Anna].lastName', {
data: data
})