最有效和优雅的方式来查找Node.js中的两个数组匹配的string

我有2个string数组:

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

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

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

Z包含在XY中的string。

我这样做了:

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

任何build议/意见?

我最好使用filter方法:

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