我有对象结构如下图所示我怎样才能实现这个逻辑
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]] || {};
}
}
请建议我完成此logi C。
请注意,Object.keys以任意顺序返回键,因此您应该在开始之前按字典顺序对键进行排序。 – Paulpro
如果我按键排序,那么顺序会改变,对吧?我的要求是以树视图的方式按顺序生成它 – Exception
算法的效率将是k^n(非常低效)。在大量数据上执行此操作将无法正常工作。 –