У меня есть структура объекта, как показано нижеКак я могу реализовать эту логику
var obj = {
a : 1,
b : [x,y,z],
c : [0,1,3],
d : ['%','-','+']
}
Я хочу, чтобы преобразовать этот объект под формат
{
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 : ['%','-','+']
}
}
}
Если есть еще одно свойство после ['%','-','+']
в вышеописанном случае, тот же процесс продолжается.
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]] || {};
}
}
Просьба предложить мне заполнить эту книгу с.
Обратите внимание, что 'Object.keys' возвращает ключи в произвольном порядке, поэтому вы должны, вероятно, отсортировать ключи лексикографически перед запуском. – Paulpro
Если я сортирую ключи, тогда заказ будет изменен, не так ли? мое требование состоит в том, чтобы сгенерировать его в древовидном виде в порядке – Exception
. Эффективность алгоритма для этого будет k^n (очень неэффективная). Выполнение этого на большом наборе данных просто не будет работать. –