亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

JavaScript如何查找對象數組的數據而不給出與對象值匹配的精確搜索值

JavaScript如何查找對象數組的數據而不給出與對象值匹配的精確搜索值

偶然的你 2024-01-18 16:48:05
如何創建一個函數來查找對象數組的數據,而不給出與對象值匹配的精確搜索值。例如我的數組是:const array = [{    "name": "Max Messi",    "age": 21,    "gender": "male"},{    "name": "tina baidya",    "age": 10,    "gender": "female"},{    "name": "tina shrestha",    "age": 100,    "gender": "female"}]現在我想要一個函數來返回所有包含“tina”的數據name。我嘗試使用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 數據的函數而不輸入確切的值。
查看完整描述

2 回答

?
慕容森

TA貢獻1853條經驗 獲得超18個贊

你就快到了,你只需要檢查名稱是否包含你的字符串,而不是等于它:

const?found?=?data.filter(element?=>?element.name.includes(id))


查看完整回答
反對 回復 2024-01-18
?
紅糖糍粑

TA貢獻1815條經驗 獲得超6個贊

您可以嘗試使用includes()方法,如下所示:

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但是,如果您搜索 example或tinathy因此它不涵蓋所有邊緣情況,它將不起作用!



查看完整回答
反對 回復 2024-01-18
  • 2 回答
  • 0 關注
  • 172 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號