Javascript 如何从json返回特定对象(不区分大小写)?
我正在用Express、Postgres和Sequelize制作一个应用程序 我有一个json,看起来像这样:Javascript 如何从json返回特定对象(不区分大小写)?,javascript,Javascript,我正在用Express、Postgres和Sequelize制作一个应用程序 我有一个json,看起来像这样: { "names": [ { "id": 1, "name": "John", "surname": "Smith" }, { "id": 2, "name": "Peter", "surname": "Black" }, { "id": 3, "
{
"names": [
{
"id": 1,
"name": "John",
"surname": "Smith"
},
{
"id": 2,
"name": "Peter",
"surname": "Black"
},
{
"id": 3,
"name": "Marie",
"surname": "White"
}
]
}
如果我在查询中写入其中一个名称,不区分大小写,我希望返回整个元素
例如,如果我查询mari
我想返回:
{
"id": 3,
"name": "Marie",
"surname": "White"
}
像这样,我只获得了值,而不是整个条目(我需要id)
您可以使用
.filter
方法,并使用.toLowerCase()
和includes
来搜索姓名或姓氏键中的关键字mari
const示例={
“姓名”:[
{
“id”:1,
“姓名”:“约翰”,
“姓氏”:“史密斯”
},
{
“id”:2,
“姓名”:“彼得”,
“姓”:“黑”
},
{
“id”:3,
“姓名”:“玛丽”,
“姓”:“白”
}
]
};
常量查询='mari';
const name=sample.names.filter((用户)=>{
返回user.name.toLowerCase().includes(query.toLowerCase())| | user.name.toLowerCase().includes(query.toLowerCase());
});
如果(name.length>0){
console.log(名称[0]);
}否则{
console.error('找不到名称!');
}
您可以使用.filter
方法,并使用.toLowerCase()
和includes
在姓名或姓氏键中搜索关键字mari
const示例={
“姓名”:[
{
“id”:1,
“姓名”:“约翰”,
“姓氏”:“史密斯”
},
{
“id”:2,
“姓名”:“彼得”,
“姓”:“黑”
},
{
“id”:3,
“姓名”:“玛丽”,
“姓”:“白”
}
]
};
常量查询='mari';
const name=sample.names.filter((用户)=>{
返回user.name.toLowerCase().includes(query.toLowerCase())| | user.name.toLowerCase().includes(query.toLowerCase());
});
如果(name.length>0){
console.log(名称[0]);
}否则{
console.error('找不到名称!');
}
谢谢!可以检查同一行中的姓氏吗?你想检查查询是用姓名还是姓氏?我想检查更新我的帖子@Al josh。只需使用ORThanks!可以检查同一行中的姓氏吗?你想检查查询是用姓名还是姓氏?我想检查更新我的帖子@Al josh。使用或
const names = persons.map(a => a.name);
const surnames = persons.map(a => a.surname);
const namesSurnames = names.concat(surnames)
const el = namesSurnames.find(a => a.includes(req.query.keyword));
console.log('el:', el);