I would like to know how to compare two or more -- potentially unlimited -- arrays for common values and push these values into a new array efficiently. Below I have a function that will accept unlimited arguments, but I am uncertain if this is a good place to begin. PHP appears to have a method that can do what I want called array\_intersect. Does javascript offer something similar?

Note: I have found examples of how this can be done with two or so arrays, but I have not found examples of how such approaches might be applied to an unspecified number of arrays as of yet. Therefore I do not see this as a duplicate question.

To further clarify, the arrays might be filled with anything. Letters, numbers, symbols, words, you name it, it might be there. 

```js
var sampleOne = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
var sampleTwo = [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18];

function FindDirectRelation() {
    for(var i = 0; i < arguments.length; ++i) {
        console.log(arguments[i]);

    };
};

var directRelation = FindDirectRelation(sampleOne, sampleTwo);
```

I am still a coding novice, so please ensure that everything is explained in a way that is simple enough for me to understand.