Dobry wieczór. Chciałem zapytać, czy działanie w zmiennej res można by było inaczej zapisać. Próbowałem rekurencji, ale wychodzi mi zły wynik. Wartość ma być zwracana jak na załączonym zdjęciu, jakieś pomysły?
const getInfo = (tr, data) => { //data - dane z serwera, //tr - wiersz tabeli wyciśniętej przez przycisk
const k = keys.valueOf(); // Zwraca ["id","name","username","email", "phone", "website"]
const v = [...tr.children].map(item => item.textContent) //Wartości w komórkach tabeli
const result = conv_To_Object(k, v) //Zamiana danych o kluczach k i danych v w obiekt
const findData = data.find(item => checkData(item, result, k)) //Porównywanie wartości z danymi serwera, a wartością zwracaną w result i odnajdowanie prawidłowych danych
const res = Object.entries(findData).reduce((total, [key, value], index, arr) => { //Tworzenie odpowiedzi
if(typeof value == "object") return total += `\n\n${key}:\n` + Object.entries(value).reduce((t, [keys, values]) => {
if(typeof values == "object") return t+= `\n ${keys}:\n` + Object.entries(values).reduce((all, [wrench, val]) => {
return all += ` ${wrench}: ${val}\n`
}, '')
return t += ` ${keys}: ${values}\n`
}, '')
return total += `\n${key}: "${value}"`
}, '')
alert(res)
}
Dane są zapisanie w json i wyglądają następująco:
Chodzi mi o to, że jeżeli w wartości obiektu jest inny obiekt, to wypisywało mi dane z tego obiektu, a jeżeli trafiłby się tam jeszcze jakiś obiekt, to też wypisze jego dane i tak dalej. Proszę o pomoc.