javascript - 从 map 中减去特定的最后一个单词

标签 javascript

我有公司名称,我使用下面的代码循环并创建缩写

dataset.nodes.forEach(d => {d.name = d.fullName.split(' ').map(w => w[0]).join('')});

劳埃德银行集团 PLC 是一家公司的示例,我想检查最后一个词是否是 PLC/plc/p.l.c。并在创建缩写之前将其删除,因为现在该公司的缩写将是 LBGP,而我希望它是 LBG

数据:

    var dataset = {"nodes":[{"fullName":"Anglo American plc"},{"fullName":"Whitbread PLC"}],"edges":[{"source":0,"target":29,"officers":["MEDORI, Rene"]},{"source":0,"target":30,"officers":["GROTE, Byron Elmer"]},{"source":0,"target":31,"officers":["GROTE, Byron Elmer"]},{"source":1,"target":13,"officers":["BASON, John George"]},{"source":1,"target":18,"officers":["HAUSER, Wolfhart Gunnar, Dr"]},{"source":1,"target":27,"officers":["SINCLAIR, Charles James Francis"]},{"source":2,"target":14,"officers":["COURT, Annette Elizabeth"]},{"source":3,"target":11,"officers":["GREEN, Andrew James"]},{"source":3,"target":12,"officers":["PUSEY, Stephen Charles"]},{"source":3,"target":15,"officers":["KENNEDY, Christopher John"]},{"source":3,"target":24,"officers":["CHAMBERS, Stuart John"]},{"source":3,"target":31,"officers":["CHAMBERS, Stuart John"]},{"source":3,"target":32,"officers":["KENNEDY, Christopher John"]},{"source":4,"target":8,"officers":["BARKER, Glyn"]},{"source":4,"target":12,"officers":["WHEWAY, Jonathan Scott"]}]};

最佳答案

分割之后,根据正则表达式测试最后一个元素,然后继续处理映射:

omits = /p\.?l\.?c\.?/i;

dataset.nodes.forEach(d => {
  const parts = d.fullName.split(' ');
  if (omits.test(parts[parts.length-1])) parts.pop();
  d.name = parts . map(w => w[0]).join('')});
});

理论上你可以用一个或两个正则表达式来做到这一点:

data.nodes.forEach(d =>
  d.name = d.name . replace(omits, '') . match(/\b\w/g) . join('');
);

请注意,我在这里省略了 {},因为它们在技术上不是必需的。

关于javascript - 从 map 中减去特定的最后一个单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38041160/

相关文章:

javascript - 我们如何在Windows上安装webpack?

javascript - 如何访问我从客户端(NodeJs)发布的数据

javascript - 如何创建具有可变宽度的重叠列的 JavaScript 柱形图

javascript - 如何制作一个可以将任何看起来像 javascript 代码的字符串转换为对象的函数?

javascript - jQuery 自定义确认

javascript - 如何使用嵌套函数访问全局变量? javascript

javascript - Reactjs 函数触发两次?

javascript - 从 csv 文件读取图像的分页

javascript - PUBNUB here_now 返回错误的 channel 列表

javascript - 将长模板文字行包装为多行而不在字符串中创建新行