var obj = {
x1: {
x2: {
x3: {
condition: false,
condition_trust: 55.25,
condition_2 : true,
conditionarray = [
x1_x2_x3_condition : false,
x1_x2_x3_condition_trust : 55.25,
x1_x2_x3_condition_2 : true,
x1_x2_x3_condition_2_trust : 55.456,
x4_name : "aaa",
x4_name_trust : 55.25,
x4_name_2 : "bbb",
x4_name_2_trust : 96.42
]
trust: 56.456
}
},
x4: {
name: "aaa",
name_trust: 55.25,
name_2: "bbb",
namearray = [
x1_x2_x3_condition : false,
x1_x2_x3_condition_trust : 55.25,
x1_x2_x3_condition_2 : true,
x1_x2_x3_condition_2_trust : 55.456,
x4_name : "aaa",
x4_name_trust : 55.25,
x4_name_2 : "bbb",
x4_name_2_trust : 96.42
]
trust: 96.42
}
}
}
У меня есть такое дерево, оно сложнее, глубже и больше. Свойства всегда находятся на последнем уровне.
То, что я пытаюсь сделать, это получить все свойства с их значениями и поместить их в новый массив. В основном я пытаюсь получить такой массив:
array = [
x1_x2_x3_condition : false,
x1_x2_x3_condition_trust : 55.25,
x1_x2_x3_condition_2 : true,
x1_x2_x3_condition_2_trust : 55.456,
x4_name : "aaa",
x4_name_trust : 55.25,
x4_name_2 : "bbb",
x4_name_2_trust : 96.42
]
Я понятия не имею, с чего начать. Есть идеи?
x1_x4
? - person kind user   schedule 05.04.2017o
и строкуs
. При первом вызове передайтеo
основной объект иs
пустую строку. В функции создайте результат видаvar res = {}
. Затем повторитеo
, используя циклfor (var k in o) {...}
. В цикле проверьтеif (typeof o[k] === "object")
и, если это так, сделайте рекурсивный вызов вашей функции с объектомo[k]
и сs + k + "_"
, возьмите его результат и выполнитеObject.assign(res, nestedRes)
. Если это был не объект, то просто присвойтеo[k]
s + k
объектуres
. После циклаreturn res
. - person   schedule 06.04.2017