【问题标题】:Refer to object elements name instead of content引用对象元素名称而不是内容
【发布时间】:2013-01-27 20:54:09
【问题描述】:

下面是一个包含正则表达式的对象,这些正则表达式在下面的函数中用于在要在数组中找到的某些字符串中查找匹配项。

如果是匹配,我想要检查匹配是否是车祸(即对象中最后一个元素的匹配)。

在第 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);

【问题讨论】:

  • 你为什么用Object.keys().forEach()???为什么不使用简单的 for-in-loop?

标签: jquery regex arrays object match


【解决方案1】:

我应该写什么来引用元素名称而不是它的内容?

只是type

【讨论】:

  • 哦,就这么简单!非常感谢:-)
猜你喜欢
  • 1970-01-01
  • 2018-10-05
  • 1970-01-01
  • 2013-11-28
  • 1970-01-01
  • 1970-01-01
  • 2021-02-16
  • 1970-01-01
  • 2020-10-19
相关资源
最近更新 更多