Чтобы получить все ключи в виде отдельных путей, вы можете взять записи объекта и выполнить итерацию, проверив, являются ли значения также объектами, а затем выбрать дополнительные ключи или только фактический ключ для результата.
function getKeys(object) {
return Object
.entries(object)
.reduce((r, [k, v]) =>
r.concat(v && typeof v === 'object'
? getKeys(v).map(sub => [k].concat(sub))
: k
),
[]
);
}
var data = { v1: { Cr: { getrt: { input: { R: { Cd: "nt", Ud: "ing", Pd: "g", Mr: "ng", Se: "ng", Pe: "ing", Psion: "g", Rt: "L", Cd2: "xsring", Cag: "xsngth", NnfigID: "xsng", CryFlag1: "xength", C2: "xength", Custo3: "xength", Cus4: "xngth", tars: "ns", taace: "h.0" }, Reqails: { Amber: "xsd:string", B: "x", KenMI: "xg", targas: "ns", targace: "h" }, Inqutails: { "Inqnt[]": { Ar: "x", B: "x", KI: "x", ts: "ns", tce: "h0" }, tas: "ns", tace: "h" }, Reqdy: { Ise: "Inq", Tnt: "x", Ald: "x", Fme: "x", Fmjke: "xtern", Mme: "xttern", Lame: "xs", Fals: { "Ado[]": { Addme: "x", Adde: "AdnalNam", taas: "", taace: "ht" }, Noents: "x", talias: "n", tapace: "h" }, Ad1: "xh", A2: "x", Ae1: "xs", St: "x", L1: "xs", L2: "xs", Cy: "x", Ste: "S", Pal: "x", Is: { "I[]": { Aine: "x", Set: "xth", L1: "x", L2: "x", C: "x", Se: "St", Pal: "n", Ape: "", tas: "ns", tpace: "" } } } } } } } },
result = getKeys(data);
console.log(result.map(a => a.join(' ')));
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
Последний родительский и последний узел:
function getKeys(object, parent = 'noParent') {
return object && typeof object === 'object'
? Object
.entries(object)
.reduce((r, [k, v]) => [...r, [parent, k], ...getKeys(v, k)], [])
: [];
}
var data = { v1: { Cr: { getrt: { input: { R: { Cd: "nt", Ud: "ing", Pd: "g", Mr: "ng", Se: "ng", Pe: "ing", Psion: "g", Rt: "L", Cd2: "xsring", Cag: "xsngth", NnfigID: "xsng", CryFlag1: "xength", C2: "xength", Custo3: "xength", Cus4: "xngth", tars: "ns", taace: "h.0" }, Reqails: { Amber: "xsd:string", B: "x", KenMI: "xg", targas: "ns", targace: "h" }, Inqutails: { "Inqnt[]": { Ar: "x", B: "x", KI: "x", ts: "ns", tce: "h0" }, tas: "ns", tace: "h" }, Reqdy: { Ise: "Inq", Tnt: "x", Ald: "x", Fme: "x", Fmjke: "xtern", Mme: "xttern", Lame: "xs", Fals: { "Ado[]": { Addme: "x", Adde: "AdnalNam", taas: "", taace: "ht" }, Noents: "x", talias: "n", tapace: "h" }, Ad1: "xh", A2: "x", Ae1: "xs", St: "x", L1: "xs", L2: "xs", Cy: "x", Ste: "S", Pal: "x", Is: { "I[]": { Aine: "x", Set: "xth", L1: "x", L2: "x", C: "x", Se: "St", Pal: "n", Ape: "", tas: "ns", tpace: "" } } } } } } } },
result = getKeys(data);
console.log(result.map(a => a.join(' ')));
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }