[英]how to get the object key if the object and array value matches in javascript
[英]JavaScript how to find data of array of object without giving exact search value that matches with value of object
如何制作一个 function 来查找 object 数组的数据,而不给出与 object 的值匹配的确切搜索值。
例如我的数组是:
const array = [{ "name": "Max Messi", "age": 21, "gender": "male" }, { "name": "tina baidya", "age": 10, "gender": "female" }, { "name": "tina shrestha", "age": 100, "gender": "female" } ]
现在我想要一个 function 返回所有name
“tina”的数据。
我尝试使用array.filter()
方法,但它需要准确的搜索名称。 就像我需要输入tina shrestha
而不是tina
这是我尝试过的:
const array = [{ "name": "Max Messi", "age": 21, "gender": "male" }, { "name": "Lina baidya", "age": 10, "gender": "female" }, { "name": "tina shrestha", "age": 100, "gender": "female" } ] function findData(data, id){ const found = data.filter(element => element.name === id) return found } console.log(findData(array, "tina"))//logs empty array as i need to type full search value
那么我怎样才能使搜索 json 数据的 function 没有输入确切的值。
您快到了,您只需要检查名称是否包含您的字符串,而不是等于它:
const found = data.filter(element => element.name.includes(id))
您可以尝试使用include()方法,如下所示:
const array = [
{
"name": "Max Messi",
"age": 21,
"gender": "male"
},
{
"name": "Lina baidya",
"age": 10,
"gender": "female"
},
{
"name": "tina shrestha",
"age": 100,
"gender": "female"
}
]
const findData = (data, searchParam) => {
return data.filter(element => element.name.includes(searchParam.toLowerCase()));
}
const results = findData(array, "tin");
console.log(results);
但是,如果您搜索例如tina2
或tinathy
,它将不起作用,因此它不会涵盖所有边缘情况!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.