Non dovrebbe essere x = $(array)[2];?
Si può fare in vari modi ma dipende essenzialmente dal tipo di dati dell'array e da ciò che si vuole ottenere.

Cerco di chiarire con qualche esempio:

Supponiamo di avere questi elementi html sulla pagina:
codice HTML:
<div id="c">c</div>
<div id="b">b</div>
<div id="a">a</div>
L'ordine delle lettere è invertito di proposito per comprendere meglio alcune differenze.


  1. Array di elementi DOM e metodo get()
    codice:
    var selettore = [document.getElementById('a'), document.getElementById('b'), document.getElementById('c')];
    var x = $(selettore).get(2);
    x.innerHTML = 'x';
    /* --- OUTPUT ---
    x
    b
    a
    -----------------*/
    Al selettore jQuery passiamo un array di elementi, cioè una serie di elementi DOM validi.
    Il selettore, di per sè, restituisce una collezione di oggetti jQuery che rappresentano gli elementi trovati ordinandoli secondo i criteri di ricerca, cioè esaminando, di volta in volta, le singole voci dell'array secondo l'ordine in cui queste sono disposte sull'array stesso.
    Il get() filtra uno di questi oggetti e lo restituisce in forma di elemento DOM. In particolare, get(2) fa riferimento al terzo oggetto trovato che corrisponde a <div id="c"> in base all'ordine degli elementi nell'array.
    Il metodo get() restituisce un elemento DOM per cui ho dovuto utilizzare innerHTML (che è una proprietà javascript) piuttosto che html() (che è un metodo jQuery, applicabile solo ad oggetti jQuery e non ad elementi del DOM).

  2. Array di stringhe e metodo get()
    codice:
    var selettore = ['#a','#b','#c'];
    var x = $(selettore.join(',')).get(2);
    x.innerHTML = 'x';
    /* --- OUTPUT ---
    c
    b
    x
    -----------------*/
    Avendo un array di stringhe (che rappresentano dei selettori) possiamo convertirlo in un'unica stringa da passare al selettore. Nell'esempio selettore.join(',') restituisce la stringa '#a,#b,#c'.
    Il selettore restituisce sempre (e comunque) degli oggetti jQuery. In questo caso però gli oggetti sono restituiti nell'ordine in cui si presentano sul documento. Questo perché il criterio di ricerca è rappresentato da un'unica stringa che viene esaminata per intero durante la ricerca.
    Il get(2) restituisce quindi l'elemento <div id="a"> che è l'ultimo trovato durante la ricerca.
  3. Array di elementi DOM e metodo eq()
    codice:
    var selettore = [document.getElementById('a'), document.getElementById('b'), document.getElementById('c')];
    var x = $(selettore).eq(2);
    x.html('x');
    /* --- OUTPUT ---
    x
    b
    a
    -----------------*/
    Il selettore è uguale al primo esempio ma il metodo eq() restituisce un oggetto jQuery, a differenza di get() che restituisce un elemento DOM.
    Per questo motivo posso usare il metodo html().

  4. Array di stringhe e metodo eq()
    codice:
    var selettore = ['#a','#b','#c'];
    var x = $(selettore.join(',')).eq(2);
    x.html('x');
    /* --- OUTPUT ---
    c
    b
    x
    -----------------*/
    Stessa storia per il selettore di tipo stringa (esempio 2) e stessa storia per ciò che viene restituito da eq() (esempio 3).

  5. Singola voce di array come selettore
    codice:
    var selettore = [document.getElementById('a'),'<div id="#b">','#c'];
    var x = $(selettore[2]);
    x.html('x');
    /* --- OUTPUT ---
    x
    b
    a
    -----------------*/
    Qui veniamo al dunque. Rispetto ai precedenti esempi, non utilizzo ulteriori metodi (get, eq) per filtrare la collezione di oggetti trovata. In questo caso mi limito a "filtrare" preventivamente ciò che voglio cercare, semplicemente specificando una sola voce dell'array come criterio di ricerca.
    Dal momento che comunque sto passando una sola voce, l'array può avere voci in qualsiasi formato.
    Il selettore restituisce un solo oggetto (ovviamente se la voce fa riferimento ad un unico elemento).
    Non ho motivo di filtrare ulteriormente la collezione risultante ed ho, quindi, un risparmio delle risorse.
    Posso usare tranquillamente il metodo html() sull'oggetto restituito.

    A meno che non mi interessi avere una collezione di tutti gli elementi (riferiti a tutte le voci dell'array), questo mi sembra il metodo più ottimale.