[英]Search form multiple fields javascript
假設有一個對象數組,例如,
[
{
"fname": "Anne",
"lname": "Walker",
"email": "jaynewashington@exposa.com",
},
{
"fname": "Peterson",
"lname": "Dalton",
"email": "petersondalton@exposa.com",
},
{
"fname": "Velazquez",
"lname": "Calderon",
"email": "velazquezcalderon@exposa.com",
},
{
"fname": "Norman",
"lname": "Reed",
"email": "normanreed@exposa.com",
}
]
我想創建一個搜索過濾器,它只按 fname 和 lname 進行搜索。 之前有人問過這樣的問題,但它搜索了所有字段
如何創建 React 搜索過濾器以搜索多個 object 鍵值
誰可以幫我這個事?
這個可以嗎?
const json = [
{
"fname": "Anne",
"lname": "Walker",
"email": "jaynewashington@exposa.com",
},
{
"fname": "Peterson",
"lname": "Dalton",
"email": "petersondalton@exposa.com",
},
{
"fname": "Velazquez",
"lname": "Calderon",
"email": "velazquezcalderon@exposa.com",
},
{
"fname": "Norman",
"lname": "Reed",
"email": "normanreed@exposa.com",
}
];
function search(str) {
const keyword = str.toLowerCase();
return json.filter(x => x.fname.toLowerCase().includes(keyword) || x.lname.toLowerCase().includes(keyword));
}
您可以使用 lodash 庫。 使用查找或過濾功能。 查找 - 單個結果和過濾多個結果示例 -
let _ = require('lodash');
let data = [
{
"fname": "Anne",
"lname": "Walker",
"email": "jaynewashington@exposa.com",
},
{
"fname": "Peterson",
"lname": "Dalton",
"email": "petersondalton@exposa.com",
},
{
"fname": "Velazquez",
"lname": "Calderon",
"email": "velazquezcalderon@exposa.com",
},
{
"fname": "Norman",
"lname": "Reed",
"email": "normanreed@exposa.com",
}
]
let result = _.find(data, { fname: 'Norman', lname: 'Reed'})
沒有圖書館的另一種選擇
let res = data.find(o => o.fname == "Norman" && o.lname == "Reed")
console.log(res)
您應該提出一個您嘗試過的示例並說“嘿,伙計們,我在這些數據上試過這個,但它沒有用。”。 然而是一個 object 的數組,所以你可以做的是:
const magicFunction = (name, lastName, array) => {
return array.filter((el) => el.fname === name && el.lname === lastName);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.