Skip to content

Instantly share code, notes, and snippets.

@ozknozsrt
Created November 8, 2023 14:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ozknozsrt/e6c57fa12679210a58e1ead23a571a83 to your computer and use it in GitHub Desktop.
Save ozknozsrt/e6c57fa12679210a58e1ead23a571a83 to your computer and use it in GitHub Desktop.
findGrandParent
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