【问题标题】:Most effective and elegant way to find matching Strings in two arrays in Node.js [duplicate]在 Node.js 中的两个数组中查找匹配字符串的最有效和最优雅的方法 [重复]
【发布时间】:2014-04-15 09:08:57
【问题描述】:

我有 2 个字符串数组:

var X = ['A', 'B', 'C'],
    Y = ['B', 'C', 'D'];

我需要创建一个数组Z,使得 Z = A ∩ B

Z = ['B', 'C'];

Z 包含XY 中的字符串。

我是这样做的:

A.forEach(function(i) {
  B.forEach(function(j) {
    if (i === j) Z.push(i);
  });
});

有什么建议/cmets?

【问题讨论】:

标签: javascript arrays node.js


【解决方案1】:

我最好使用filter方法:

['A', 'B', 'C'].filter(function(c) {
    return ['B', 'C', 'D'].indexOf(c) > -1;
});

【讨论】:

  • 对,使用.indexOf() 是我最初的方法。问题是,如果数组有 2 个类似的词,如“INTERNATIONAL 和“NATIONAL” - 它们都显示为匹配 :)
  • 不应该,因为您混合了两种不同的 indexOf 方法:for arraysfor strings
  • 像魅力一样工作。使用filter 代替我的解决方案有什么好处?
  • @martynas 我看不出有什么特别的优势......两者都应该相当快。也许filter 方法更短更清晰。
  • 嗯...不确定过滤器是如何工作的,但我的方法可能有冗余操作。
猜你喜欢
  • 2011-04-25
  • 1970-01-01
  • 2014-06-26
  • 1970-01-01
  • 2012-03-08
  • 2022-01-19
相关资源
最近更新 更多