2012-05-11 13 views

risposta

82

di fare qualcosa di simile associative array in JavaScript è necessario utilizzare gli oggetti.

var arr = {}; // {} will create an object 
var name = "name"; 
var val = 2; 
arr[name] = val; 
console.log(arr);​ 

DEMO:http://jsfiddle.net/bz8pK/1/

+1

Si dovrebbe rinominare 'arr' a' obj'. Perché è un oggetto, non un array. – ProEvilz

+0

Sapete, a volte siamo così concentrati su soluzioni complesse che dimentichiamo quelle semplici. arr [nome] = val; 5 anni dopo, grazie fratello. Combinato con un ciclo for è possibile spostare le variabili una dopo l'altra per tutto il giorno –

18

JavaScript non ha array associati. È necessario utilizzare oggetti invece:

var obj = {}; 
var name = "name"; 
var val = 2; 
obj[name] = val; 
console.log(obj);​ 

per ottenere il valore è possibile utilizzare modi diversi ora:

console.log(obj.name);​ 
console.log(obj[name]);​ 
console.log(obj["name"]);​ 
+1

Grazie per aver mostrato le molteplici modalità di accesso ai dati. –

4

Javascript ha array associativi. Ecco uno snippet di lavoro.

<script type="text/javascript"> 
 
    var myArray = []; 
 
    myArray['thank'] = 'you'; 
 
    myArray['no'] = 'problem'; 
 
    console.log(myArray); 
 
</script>

Non so se si tratta di una nuova funzionalità di ECMA, ma come oggi funziona esattamente come hai scritto.

+1

Grazie mille! – Raja

+2

Questo non è un array. La presenza di chiavi non numeriche rende questo oggetto letterale. Guarda tu stesso: 'console.log (typeof myArray);'. Inoltre, la proprietà 'length' non conterrà queste chiavi non numeriche come parte dell'array:' console.log (myArray.length); 'restituisce' 0'. Aggiungi 'myArray [0] = 'vedi';', quindi esegui di nuovo, restituisce '1'. – ajmedway

0

Questo è il modo di creare un array associativo

var arr = [];  
var name = "name"; 
var val = 'some value'; 
var val2 = 'some other value'; 

arr[name] = new Array(val); 
arr[name].push(val2) 
console.log(arr); 

Si possono trovare here Maggiori informazioni utili sul array JavaScript

Problemi correlati