我有一个输入:
var query = {"a":{"b":{"branchs":[{"$or":{"d":10}},{"$or":{"e":10}}],"f":22}}};
我需要一个输出:
output[0] = {"a":{"b":{"$or":{"d":10},"f":22}}}
output[1] = {"a":{"b":{"$or":{"e":10},"f":22}}}
我需要“分支”键中的“拆分和复制”数组。该对象是多维的,它可以嵌套N个分支键,所以我认为它应该是一个递归函数。
我做了几次测试,但我不能。我将不胜感激任何帮助
修改 函数http://jsfiddle.net/cjsb7j1r/(需要重构)
答案 0 :(得分:0)
也许,这样的事情?
var query = {"a":{"b":{"branchs":[{"$or":{"d":10}},{"$or":{"e":10}}],"f":22}}};
//output[0] = {"a":{"b":{"$or":{"d":10},"f":22}}}
//output[1] = {"a":{"b":{"$or":{"e":10},"f":22}}}
var output = [];
for (var i = 0; i < query.a.b.branchs.length; i++){
output.push({
"a":{
"b": {"$or": query.a.b.branchs[i]["$or"], "f": query.a.b.f}
}
});
}
console.log(output);
的jsfiddle:
http://jsfiddle.net/8zsrwbLq/1/
编辑:由于"f"
始终位于"b"
级