Поиск совпадений между несколькими массивами JavaScript

У меня есть несколько массивов со строковыми значениями, и я хочу сравнить их и сохранить только те результаты сопоставления, которые идентичны между ВСЕМИиз них.

Учитывая этот пример кода:

var arr1 = ['apple', 'orange', 'banana', 'pear', 'fish', 'pancake', 'taco', 'pizza'];
var arr2 = ['taco', 'fish', 'apple', 'pizza'];
var arr3 = ['banana', 'pizza', 'fish', 'apple'];

Я хотел бы создать следующий массив, содержащий совпадения из всех заданных массивов:

['apple', 'fish', 'pizza']

Я знаю, что могу объединить все массивы с помощью var newArr = arr1.concat( arr2, arr3);но это просто дает мне массив со всем, плюс дубликаты. Можно ли это сделать легко, не прибегая к накладным расходам библиотек, таких как underscore.js?

(Отлично, и теперья тоже проголодался!)

РЕДАКТИРОВАТЬПолагаю, я должен упомянуть, что может быть неизвестное количество массивов, я просто использовал 3 как пример.

52
задан CBarr 17 June 2012 в 14:36
поделиться