The answer provided didn't work for me, but it gave me an idea:
Array.prototype.contains = function(obj)
    {
        return (this.join(',')).indexOf(obj) > -1;
    }
It isn't perfect because items that are the same beyond the groupings could end up matching.  Such as my example
var c=[];
var d=[];
function a()
{
    var e = '1';
    var f = '2';
    c[0] = ['1','1'];
    c[1] = ['2','2'];
    c[2] = ['3','3'];
    d[0] = [document.getElementById('g').value,document.getElementById('h').value];
    document.getElementById('i').value = c.join(',');
    document.getElementById('j').value = d.join(',');
    document.getElementById('b').value = c.contains(d);
}
When I call this function with the 'g' and 'h' fields containing 1 and 2 respectively, it still finds it because the resulting string from the join is:  1,1,2,2,3,3
Since it is doubtful in my situation that I will come across this type of situation, I'm using this.  I thought I would share incase someone else couldn't make the chosen answer work either.