2017-05-11 4 views
-3

Ich habe drei ArraysJavascript-Arrays zu JSON

var x ={x1,x2,x3,x4,x1,x2,x4,x3...} 
var y ={y1,y1,y1,y1,y2,y3,y4...} 
var z ={a,b,c,d,...} 

Es ist eine 1: 1: 1-Entsprechung zwischen allen drei Werten. Wobei x die Zeile und y die Spalte und z der Wert ist.

Ich möchte ein JSON in Javascript erstellen wie

{ 
x1{ 
    y1:a, 
    y2:f 
    }, 
x2{ 
    y1:b, 
    y2:h 
    }, 
    x3{...}, 
    x4{} 
} 

Grundsätzlich Reihe JSON x1 {} mit all den Spaltennamen und Werte durch Komma getrennt erstellen

+4

_I haben drei arrays_ - Sind sie das? – Tushar

+4

Bitte fügen Sie einige echte Daten und das gewünschte Ergebnis, und was Sie versucht haben, um das Ergebnis zu erhalten. –

Antwort

1

Sie die x Arrays durchlaufen könnte und nehmen die Wert als Schlüssel für das Objekt und von y der Wert des gleichen Index als Schlüssel des inneren Objekts, dann den Wert des gleichen Index von v zuweisen.

Das Ergebnis ist ein Objekt mit verschachtelten Schlüsseln und allen Werten.

var x = ['x1', 'x2', 'x3', 'x4', 'x1', 'x2', 'x4', 'x3'], 
 
    y = ['y1', 'y1', 'y1', 'y1', 'y2', 'y3', 'y4', 'y4'], 
 
    v = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'], 
 
    result = {}; 
 

 
x.forEach(function (k, i) { 
 
    result[k] = result[k] || {}; 
 
    result[k][y[i]] = v[i]; 
 
}); 
 

 
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }