const input = {
a: [1, 2, 3],
b: {
c: {
d: {
e: 4,
},
},
},
f: 5,
g: {
h: [6, 7],
},
};
const outPut = {
a: 123,
bcde: 4,
f: 5,
gh: 67,
};
const getAllKeysOfObject = (obj, key) => {
let tempKey = key;
let nextKey = ''
if (obj instanceof Object && Object.values(obj).length > 0) {
nextKey = Object.values(obj)[0]
tempKey += nextKey;
getAllKeysOfObject(obj[nextKey], nextKey)
} else {
return {key: tempKey, value: obj[nextKey]}
}
}
const getObject = (input) => {
let tempObj = {}
Object.keys(input).forEach(key => {
let value = input[key] //[1,2]
console.log(value)
if (Array.isArray(value)) {
let tempStr = ''
for(let i =0;i<value.length;i++) {
tempStr += value[i]
}
tempObj[key] = tempStr;
} else if (input[key] instanceof Object && Object.values(input[key]).length > 0) {
let newObj = getAllKeysOfObject(input[key], key)
tempObj[newObj.key] = newobj.value
} else {
tempObj[key] = input[key]
}
})
return tempObj
}
console.log(getObject(input))
How to get the output { a: 123, bcde: 4, f: 5, gh: 67, }; in javascript
The above code not working as expected for a key working fine but the nested object getting failed. Getting the error Uncaught TypeError: Cannot read properties of undefined (reading '')"
JSFiddle link https://jsfiddle.net/ankitg1602/5v2gp64r/49/