Javascript 如何从json返回特定对象(不区分大小写)?

Javascript 如何从json返回特定对象(不区分大小写)?,javascript,Javascript,我正在用Express、Postgres和Sequelize制作一个应用程序 我有一个json,看起来像这样: { "names": [ { "id": 1, "name": "John", "surname": "Smith" }, { "id": 2, "name": "Peter", "surname": "Black" }, { "id": 3, "

我正在用Express、Postgres和Sequelize制作一个应用程序

我有一个json,看起来像这样:

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