Javascript 如何从完整地址数组中获取城市?

Javascript 如何从完整地址数组中获取城市?,javascript,arrays,Javascript,Arrays,我正在开发一个应用程序,希望用户根据城市选择要查看的结果 目前,应用程序的工作方式是搜索作业,用户可以指定以下内容: 职称 国家 假设用户在塞浦路斯中添加了以下首选项数据库,则会显示以下地址: 由4个元素组成的数组(城市名称、邮政编码、国家代码、街道地址) 我在网上搜索发现塞浦路斯有以下城市:Lefkosia或NicosiaPaphosLimassol或LemesosLarnaka或Larnaca,最后是Ammohostos或Famagusta 我想知道的是,只显示按城市名称选择的作业。例如

我正在开发一个应用程序,希望用户根据城市选择要查看的结果

目前,应用程序的工作方式是搜索作业,用户可以指定以下内容:

  • 职称
  • 国家
假设用户在
塞浦路斯
中添加了以下首选项
数据库
,则会显示以下地址:

由4个元素组成的数组(城市名称、邮政编码、国家代码、街道地址)

我在网上搜索发现塞浦路斯有以下城市:
Lefkosia或Nicosia
Paphos
Limassol或Lemesos
Larnaka或Larnaca
,最后是
Ammohostos或Famagusta

我想知道的是,只显示按城市名称选择的作业。例如,当用户决定只在
Lefkosia或Nicosia
中查看作业时,只应显示四个结果。即:

STROVOLOS       | 2064 | cy | ΒΥΖΑΝΤΙΟΥ 30 FLAT/ OFFICE 22 2064 LEFKOSIA
EGKOMI          | 2404 | cy | Διογένους 1, Κόμβος A, 5ος όροφος 2404 LEFKOSIA
EGKOMI          | 2404 | cy | Διογένους 1, Κόμβος A, 5ος όροφος 2404 LEFKOSIA
LAKATAMEIA      | 2322 | cy | Arch. Makariou III and Mesaorias 1 2322 LEFKOSIA
我不确定什么是最好的方法。我不负责这些位置的存储方式,因为我使用网络抓取来获取这些信息。同样在上面的示例中,提供的4个结果中没有一个具有存储城市名称的正确方法

我能想到的一个解决办法是获取街道地址的最后一点。但我对此不确定。我还必须与大多数欧洲国家打交道,而不仅仅是塞浦路斯

如果你知道如何解决这个问题,请让我知道


更新:

实际阵列:

0: "LEMESOS 3042 cy ΡΙΧΑΡΔΟΥ & ΒΕΡΕΓΓΑΡΙΑΣ 12 ARAOUZOS CASTLE COURT, 3ΟΣ ΟΡΟΦΟΣ 3042 LEMESOS"
1: "LARNAKA - SOTIR 6057 cy ΣΠΥΡΟΥ ΚΥΠΡΙΑΝΟΥ 50, ΙΡΙΔΑ 3 10-ΟΣ ΟΡΟΦΟΣ 6057 LARNAKA"
2: "EDEGEM 2650 be Acht Eeuwenlaan"
3: "STROVOLOS 2064 cy ΒΥΖΑΝΤΙΟΥ 30 FLAT/ OFFICE 22 2064 LEFKOSIA"
4: "LEMESOS 3042 cy ΡΙΧΑΡΔΟΥ & ΒΕΡΕΓΓΑΡΙΑΣ 12 ARAOUZOS CASTLE COURT, 3ΟΣ ΟΡΟΦΟΣ 3042 LEMESOS"
5: "LEMESOS 3042 cy ΡΙΧΑΡΔΟΥ & ΒΕΡΕΓΓΑΡΙΑΣ 12 ARAOUZOS CASTLE COURT, 3ΟΣ ΟΡΟΦΟΣ 3042 LEMESOS"
6: "EGKOMI 2404 cy Διογένους 1, Κόμβος A, 5ος όροφος  2404 LEFKOSIA"
7: "EGKOMI 2404 cy Διογένους 1, Κόμβος A, 5ος όροφος  2404 LEFKOSIA"
8: "LAKATAMEIA 2322 cy Arch. Makariou III and Mesaorias 1  2322 LEFKOSIA"
你可以过滤

const addr=`0:“LEMESOS 3042 cyΡyiΧyiΡΔΥΥ&ΕyiΕyiΗyiΑyiΑΑ∑12 ARAOUZOS城堡庭院,3ы∑ΡΗΗΕΓΗyiΑ∑3042 LEMESOS”
1:“拉纳卡-SOTIR 6057 cy∑∏∏∏∏∏∏∏ΡΛ∏∏ΝΝΥΥ50,Ρ∏ΡΔΑ3 10-ц∑ΡΡΥΥΥ∑6057拉纳卡”
2:“EDEGEM 2650将成为一名雇员”
3:“STROVOLOS 2064 cyΒΥΑΝΥΥ30公寓/办公室22 2064 LEFKOSIA”
4:“莱梅索斯3042赛奥索斯城堡法院,3∑СΡΥΥ和ΒΕΓΓ∑12阿拉奥索斯城堡法院,3∑СΡΗΕ∑3042莱梅索斯”
5:“莱梅索斯3042赛奥索斯城堡法院,3∑СΡΥΥ和ΒΕΓ∑12阿拉奥索斯城堡法院,3∑СΡΗΕ∑3042莱梅索斯”
6:“EGKOMI 2404-cyΔιοοοοος1,ΚοοοςA,5οοοοςοοςςθθθ
7:“EGKOMI 2404-cyΔιοοοοος1,ΚοοοςA,5οοοοςοςςθοθθ
8:“LAKATAMEIA 2322西拱门。马卡里奥三世和梅索里亚12322勒夫科西亚”`。分裂(/\n/);
document.getElementById(“cc”).addEventListener(“输入”,函数(){
const val=this.value.toLowerCase();
const lines=addr.filter(line=>line.toLowerCase().includes(val))
document.getElementById(“res”).innerHTML=lines.join(“
”); })

const addr=`LEMESOS | 3042 | cy | |ΧΑΡΔΥΥ和ΕΡΕΓΗΑ∑12 ARAOUZOS城堡庭院,3∑∑∑∑ΡΡΗ∑3042 LEMESOS
拉纳卡-索蒂尔6057赛尼∑∏∏∏∏ΫΥΥ∏∏Υ∏∏ΝΥΥΥ50,Ρ∏ΔΑ3 10-Υ∑ΫΡΥΥΥ∑6057拉纳卡
斯特罗沃洛斯2064赛科西亚2064勒夫科西亚30号公寓/办公室
莱梅索斯3042赛斯12阿拉乌索斯城堡法院,3∑∑∑&莱梅索斯3042莱梅索斯
莱梅索斯3042赛斯12阿拉乌索斯城堡法院,3∑∑∑&莱梅索斯3042莱梅索斯
埃格科米| 2404 | cy |Διογένος1,ΚμοςA,5οροος2404 LEFKOSIA
埃格科米| 2404 | cy |Διογένος1,ΚμοςA,5οροος2404 LEFKOSIA
LAKATAMEIA | 2322 | cy |拱门。Makariou III和Mesaorias 12322 LEFKOSIA`.分裂(/\n/);
$。每个(地址、函数(i、val){
如果(/LEFKOSIA/.test(val)){
控制台日志(val);
}
})

我有一个问题,您收集数据后是否完成了筛选?是的,我收集数据,然后我想筛选数据并最终在客户端显示它们好的,我将尝试使用此选项,并让您知道它是否适合我。为什么这不适用于其他位置列表?第一个不适用于荷兰地址,其中邮政编码ie nnna-I添加了可能更好的版本请参见更新。假设第二个字段是一个后代码,您应该可以使用我的代码。我已经用实际数组更新了问题,我从来没有想到它在一开始会很重要,所以我修改了它,以便能够清楚地解释我想要解释的内容。但是,使用代码中提到的代码,它无法与实际数组一起工作,实际数组会出现以下错误:
jobs\u map.js:75 Uncaught TypeError:not读取jobs\u map.js:75 at array.map()处addDataOnMapAndTable(jobs\u map.js:75)处的null属性“1”,returnResults:246
我已更新,但无法处理混合。-例3中的荷兰语地址甚至没有城市。我假设我必须对整个欧洲的所有城市进行编码,才能得到我想要的。我不确定这是否是解决问题的合乎逻辑的方法problem@user14054150你告诉我你已经收集了数据。代码片段下面的一小段代码是当用户输入某个城市时可以使用的代码,比如用户输入Lefkosia或Larnaka。我在代码片段中展示的只是一种过滤数据的方法,我认为DutchDev的意思是让你键入国家或城市的名称,然后他会提取出来。它可以工作,但如果您键入“Paris”,它也会返回“Paris,Texas”,我不明白您为什么要为一个简单的filter@mplungjan首先,是的,这是可能的。我之所以这么做是因为我不知道美国的数据会是什么样子。我只是根据给定的情况来回答。第二,它的个人偏好,因为它在解决数据和客户端事件问题上提供了更多的选择。
0: "LEMESOS 3042 cy ΡΙΧΑΡΔΟΥ & ΒΕΡΕΓΓΑΡΙΑΣ 12 ARAOUZOS CASTLE COURT, 3ΟΣ ΟΡΟΦΟΣ 3042 LEMESOS"
1: "LARNAKA - SOTIR 6057 cy ΣΠΥΡΟΥ ΚΥΠΡΙΑΝΟΥ 50, ΙΡΙΔΑ 3 10-ΟΣ ΟΡΟΦΟΣ 6057 LARNAKA"
2: "EDEGEM 2650 be Acht Eeuwenlaan"
3: "STROVOLOS 2064 cy ΒΥΖΑΝΤΙΟΥ 30 FLAT/ OFFICE 22 2064 LEFKOSIA"
4: "LEMESOS 3042 cy ΡΙΧΑΡΔΟΥ & ΒΕΡΕΓΓΑΡΙΑΣ 12 ARAOUZOS CASTLE COURT, 3ΟΣ ΟΡΟΦΟΣ 3042 LEMESOS"
5: "LEMESOS 3042 cy ΡΙΧΑΡΔΟΥ & ΒΕΡΕΓΓΑΡΙΑΣ 12 ARAOUZOS CASTLE COURT, 3ΟΣ ΟΡΟΦΟΣ 3042 LEMESOS"
6: "EGKOMI 2404 cy Διογένους 1, Κόμβος A, 5ος όροφος  2404 LEFKOSIA"
7: "EGKOMI 2404 cy Διογένους 1, Κόμβος A, 5ος όροφος  2404 LEFKOSIA"
8: "LAKATAMEIA 2322 cy Arch. Makariou III and Mesaorias 1  2322 LEFKOSIA"