Ich habe Objektstruktur wie untenWie kann ich diese Logik implementieren
var obj = {
a : 1,
b : [x,y,z],
c : [0,1,3],
d : ['%','-','+']
}
Ich mag das Objekt konvertieren unter Format
{
1 : {
x : {
0 : ['%','-','+'], // Last index remains as an array
1 : ['%','-','+'],
3 : ['%','-','+']
},
y : {
0 : ['%','-','+'], // Last index remains as an array
1 : ['%','-','+'],
3 : ['%','-','+']
},
z : {
0 : ['%','-','+'], // Last index remains as an array
1 : ['%','-','+'],
3 : ['%','-','+']
}
}
}
Wenn es nach ['%','-','+']
in obigem Fall eine weitere Eigenschaft ist, Derselbe Prozess wird fortgesetzt.
var v = {}/* Object of above */, keys = Object.keys(v), simplifiedColumns = {};
for (var i = 0, l = keys.length; i < l ; i++) {
if (v[i] instanceof Array) {
}else{
simplifiedColumns[keys[i]] = simplifiedColumns[keys[i]] || {};
}
}
Bitte schlagen Sie mir vor, diese Logi abzuschließen c.
Beachten Sie, dass 'Object.keys' die Schlüssel in einer beliebigen Reihenfolge zurückgibt, also sollten Sie die Schlüssel lexikografisch sortieren, bevor Sie beginnen. – Paulpro
Wenn ich die Schlüssel sortiere, wird die Reihenfolge geändert, richtig? Meine Anforderung ist, es in Baumansicht Weise in der Reihenfolge – Exception
zu generieren Die Effizienz eines Algorithmus, um dies zu tun, wird k^n (sehr ineffizient). Dies kann bei einer großen Datenmenge einfach nicht funktionieren. –