Encontrar correspondências entre vários arrays JavaScript
Eu tenho vários arrays com valores de string e quero compará-los e manter apenas os resultados correspondentes que são idênticos entreTODOS deles.
Dado este código de exemplo:
var arr1 = ['apple', 'orange', 'banana', 'pear', 'fish', 'pancake', 'taco', 'pizza'];
var arr2 = ['taco', 'fish', 'apple', 'pizza'];
var arr3 = ['banana', 'pizza', 'fish', 'apple'];
Eu gostaria de produzir a seguinte matriz que contém correspondências de todas as matrizes dadas:
['apple', 'fish', 'pizza']
Eu sei que posso combinar todos os arrays comvar newArr = arr1.concat(arr2, arr3);
mas isso me da uma matriz com tudo, mais as duplicatas. Isso pode ser feito facilmente sem precisar da sobrecarga de bibliotecas como o underscore.js?
(Ótimo eagora Eu estou com fome também!)
EDITAR Eu suponho que devo mencionar que poderia haver uma quantidade desconhecida de matrizes, eu estava usando apenas 3 como exemplo.