Created
November 8, 2023 14:26
-
-
Save ozknozsrt/e6c57fa12679210a58e1ead23a571a83 to your computer and use it in GitHub Desktop.
findGrandParent
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function findGrandParent(array, id) { | |
// Diziyi her bir eleman için döngüye sok | |
for (let i = 0; i < array.length; i++) { | |
// Eğer elemanın id'si aranan id ile eşitse, elemanı, üst nesneyi ve üst nesnenin üst nesnesini döndür | |
if (array[i].StepId === id) { | |
return { item: array[i], parent: array, grandParent: array.parent }; | |
} | |
// Eğer elemanın Steps adında bir özelliği varsa, recursive olarak fonksiyonu çağır | |
if (array[i].Steps) { | |
// Recursive çağrı yapmadan önce, dizinin üst nesnesini Steps özelliğine ata | |
array[i].Steps.parent = array[i]; | |
const result = findGrandParent(array[i].Steps, id); | |
// Eğer recursive çağrıda bir sonuç bulunduysa, sonucu döndür | |
if (result) { | |
return result; | |
} | |
} | |
} | |
// Eğer döngü bitti ve sonuç bulunamadıysa, null döndür | |
return null; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment