Sì, avevo visto: è dal punto di vista automobilistico americano. La mia Skoda a Vapore nemmeno ce n'è una ....
Se andiamo a ricercare tutti i modelli del mondo o quasi, andremo ben oltre le 10.000 voci. Ma probabilmente non è quello che deve fare il nostro amico.
Con la via che ho indicato diciamo che una sorta di QUATTRORUOTE digi-consultabile ce lo può fare, copiando con calma il difficile sarebbe tenere aggiornati i prezzi di tutti gli articoli, ma non il "peso" dell' Array una volta che è stato compilato.

Può anche salvare separati Array in separati file da richiamare con diversi SCRIPT SRC=""
bmw.js
fiat.js
skoda.js
così apre solo quello che serve; l' importante è che in alto e una volta sola ci sia la dichiarazione:

<script type="text/javascript">

var car = new Array();

var i=0;
</script>

Originariamente inviato da cavicchiandrea
Ma Enzo ../.. tu fai come vuoi io mi fermo qui.
Beh anch' io non è che andrò tanto più avanti, ma posto già qualcosa adesso per garantire il ripopolamento faunistico delle SELECT. Ciò ha richiesto l' impianto di un discreto bosco di Array e di cicli FOR, caspita ce n'è anche uno di servizio - immessi - interno alle funzioni:
codice:
<!DOCTYPE html>
<html>
<head><title>car's</title>

<script type="text/javascript" src="database.js"></script>
<script type="text/javascript"> 

function popola1(){ 
 var immessi = new Array('- scegli marca -');
 var doppione;
 var options = '<option>- scegli marca -';
 for(i=0; i<car.length; i++){
                
     for(n=0; n<immessi.length; n++){
             if(immessi[n]==car&#91;i&#93;[0]){
                n=immessi.length;
                doppione=true;
         } else {
                doppione=false;
         };
     };
             if(doppione==false){  //alert(immessi)
                immessi[immessi.length]=car&#91;i&#93;[0];
                options = options + '<option value="' + car&#91;i&#93;[0] + '">' + car&#91;i&#93;[0];
             };
 };
 document.getElementById("casa").innerHTML='<select id="marca" onchange="popola2(this.value);">' + options + '<\/select>';
 document.getElementById("casabtn").disabled="";
 }; 

function popola2(marca){ 
 var immessi = new Array('- scegli modello -');
 var doppione;
 for(i=0; i<car.length; i++){
     if(car&#91;i&#93;[0]==marca){
     for(n=0; n<immessi.length; n++){
             if(immessi[n]==car&#91;i&#93;[1]){
                n=immessi.length;
                doppione=true;
         } else {
                doppione=false;
         };
     };
             if(doppione==false){  //alert(immessi)
                immessi[immessi.length]=car&#91;i&#93;[1];
             };
     };
 };
                
                immessi.sort();
 var options = '';
     for(n=0; n<immessi.length; n++){
        options = options + '<option value="' + immessi[n] + '">' + immessi[n];
     };
 document.getElementById("tipo").innerHTML='<select id="modello" onchange="popola3(this.value);">' + options + '<\/select>';
 document.getElementById("tipobtn").disabled="";
 }; 


function ricerca(qualeSelect, indice){ 
 var criterio = document.getElementById(qualeSelect).value; 

 var riga = '<thead><tr><th>MARCA<\/th><th>ANNO<\/th><th>MODELLO<\/th><\/tr><\/thead><tbody>'; 
 for(i=0; i<car.length; i++){
     if(car&#91;i&#93;[indice]==criterio){
     riga = riga + '<tr valign="top"><td>' + car&#91;i&#93;[0] + '<\/td><td>' + car&#91;i&#93;[2] + '<\/td><td>[img]' + car&#91;i&#93;[4] + '[/img]' + car&#91;i&#93;[3] + 

'<\/td><\/tr>';
     };
 };

 var tabella='<table border="0" align="center"><tbody><tr><td>' + '<table border="1">' + riga + '<\/tbody><\/table><\/td><\/tr><\/tbody><\/table>';
 document.getElementById("risultati").innerHTML='<hr>' + tabella;
 }; 
</script>

</head><body onload="popola1();"> 
<div>
<table border="0" align="center"><tbody><tr>
 <td>- esegui la ricerca secondo il criterio che preferisci -<hr>
 <table border="0"><tbody><tr>
  <td id="casa" ><select disabled="disabled"><option>- scegli marca -  </select></td><td><input id="casabtn" value="cerca" type="button" 

onclick="ricerca('marca',  0);" disabled="disabled"></td><td>/\</td>
  <td id="tipo" ><select disabled="disabled"><option>- scegli modello -</select></td><td><input id="tipobtn" value="cerca" type="button" 

onclick="ricerca('modello',1);" disabled="disabled"></td><td>/\</td>
  <td id="epoca"><select disabled="disabled"><option>- scegli l' anno -</select></td><td><input id="epocabtn" value="cerca" type="button" 

onclick="ricerca('anno',   2);" disabled="disabled"></td></tr></tbody>
 </table></td></tr></tbody>
</table>
</div>

<div id="risultati">
</div>

<noscript>L' applicazione non può funzionare perché avete JavaScript disabilitato sul Browser.</noscript>

    
</body>
</html>
immessi.sort(); ti garantisce l' ordinamento alfabetico nella 2.a SELECT.
Ho lasciato in sospeso di sviluppare per ANNO.

P.S.: aspetta, il sort() è case-sensitive "E" viene messo prima di "a"
comunque quel che ho fatto ho fatto, ora devo lasciare: avevo un po' tutto a mente da precedenti studi, come ho detto.
popola1 e popola2 le ho volutamente lasciate affrontare in modo leggermente diverso l' allestimento della var options.

P.S. del P.S.: Adesso è andato tutto in crisi per la i tra le quadre: la prima occorrenza di
if(immessi[n]==car[0]){ devi cambiarla in
if(immessi[n]==car&#91;i&#93;[0]){

CONTRORDINE: ho fatto un replace.