簡體   English   中英

搜索表單多個字段 javascript

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM