下面是一个包含正则表达式的对象,这些正则表达式在下面的函数中用于查找某些字符串中的匹配项。
如果匹配我想要检查匹配是否是车祸(即对象中最后一个元素的匹配)。
在第27行,我尝试这样做,但这不起作用,因为INCIDENT_MATCHES [type]引用了对象元素的内容(即正则表达式),而不是元素的名称(trafficAccidents)。
我写什么来引用元素名称而不是它的内容?
1. var INCIDENT_MATCHES = {
2. battery: /\w*(bråk)\w*|överfall|slagsmål|slogs|misshandel|misshandlad|\w*(tjuv)\w*/ig,
3. burglaries: /snattade|snattare|snatta|inbrott|bestulen|stöld|\w*(tjuv)\w*/ig,
4. robberies: /\w*(rån)\w*|personrån|\w*(ryckning)\w*|väskryckt*/ig,
5. gunfire: /skottlossning|skjuten|sköt/ig,
6. drugs: /narkotikabrott/ig,
7. vandalism: /skadegörelse|klotter|\w*(klottra)\w*/ig,
8. trafficAccidents: /(trafik|bil)olycka|(trafik|bil)olyckor|\w*(personbil)\w*|singelolycka|kollision|\w*(kollidera)\w*|påkörd|trafik|smitningsolycka/ig,
9. };
10.
11. function FindIncidents(incidentReports) {
12.
13. var incidentCounts = {};
14. var incidentTypes = Object.keys(INCIDENT_MATCHES);
15. incidentReports[2].forEach(function(incident) {
16. matchFound = false;
17.
18. incidentTypes.forEach(function(type) {
19. if(typeof incidentCounts[type] === 'undefined') {
20. incidentCounts[type] = 0;
21. }
22. var matchFound = incident.match(INCIDENT_MATCHES[type]);
23. if(matchFound){
24. matchFound = true;
25. incidentCounts[type] += 1;
26. console.log(INCIDENT_MATCHES[type]); // refers to the elements content, not the name which I want.
27. if (INCIDENT_MATCHES[type] == 'trafficAccidents') {
28. //
29. }
30 }
31. });
32. });
33. }
34.
35. FindIncidents(arrayWithStringsToMatch);
答案 0 :(得分:1)
我写什么来引用元素名称而不是它的内容?
只是type
。