侃侃爾雅
2023-09-28 17:36:57
我有傳單地圖,顯示 30-50 個(gè)不同的標(biāo)記。在地圖下方,我有一個(gè)簡(jiǎn)單的 HTML 表單,用于過(guò)濾。用戶將選擇過(guò)濾器(例如:“城市”和“id”)。然后地圖應(yīng)該只顯示滿足這兩個(gè)過(guò)濾器的標(biāo)記。所有其他標(biāo)記都應(yīng)刪除。我想這樣做的邏輯是這樣的:設(shè)置過(guò)濾器后,搜索標(biāo)記的 json 源并刪除所有未請(qǐng)求的。但我不知道如何實(shí)施。另外,如何在過(guò)濾器關(guān)閉后恢復(fù)所有默認(rèn)標(biāo)記?此外,過(guò)濾器還應(yīng)作為單獨(dú)的 HTML 表單位于傳單地圖之外。這就是我初始化標(biāo)記的方式var city = [
{name: "City1", loc: [11.111, 22.222], id: "1"},
{name: "City2", loc: [12.111, 23.222], id: "2"},
{name: "City3", loc: [13.111, 24.222], id: "3"},
{name: "City3", loc: [14.111, 25.222], id: "4"}
];我沒(méi)有包含其余代碼,因?yàn)樗菢?biāo)準(zhǔn)傳單代碼,因此為了保持緊湊。
1 回答

慕俠2389804
TA貢獻(xiàn)1719條經(jīng)驗(yàn) 獲得超6個(gè)贊
您應(yīng)該使用Array.prototype.filterID
方法使用and過(guò)濾初始城市數(shù)組name
:
const cities = [
? {name: "City1", loc: [11.111, 22.222], id: "1"},??
? {name: "City2", loc: [12.111, 23.222], id: "2"},?
? {name: "City3", loc: [13.111, 24.222], id: "3"},?
? {name: "City3", loc: [14.111, 25.222], id: "4"}
];
let selectedCity = "City2";
let selectedId = "2";
let filteredList = cities.filter( city => {
? return city.name === selectedCity && city.id === selectedId
});
console.log( filteredList );
添加回答
舉報(bào)
0/150
提交
取消