'nested if statements javascript

I'm trying to do a lookup until i found an especific value; currently using if statements like this but right now its only two levels and i dont need how many if statements will be needed until the conditions meets.

if (newObject.parent.toString() != 1) {
            alert(newObject.shareholder + ' no es 1 Buscaremos sus padres');
            var newObject = parentSearch.search(newObject.parent.toString())[0].item;

            if (newObject.parent.toString() != 1) {

                var newObject = parentSearch.search(newObject.parent.toString())[0].item;

            } else {
                alert(newObject.shareholder + ' Found');

            }
        } else {
            alert(newObject.shareholder + ' Found');

        }

Is there a way to avoid using infinite IF statements ?



Solution 1:[1]

You can make use of recursion as follow:

function checkObject(newObject) {
    if (newObject.parent.toString() != 1) {
        alert(newObject.shareholder + ' no es 1 Buscaremos sus padres');
        const newObject = parentSearch.search(newObject.parent.toString())[0].item;

        checkObject(newObject)  // recursion
    } else {
        alert(newObject.shareholder + ' Found');

    }
}

In case you cannot use recursion, you can use following:

function checkObject(newObject) { 
    while (true){
        if (newObject.parent.toString() != 1) {
            alert(newObject.shareholder + ' no es 1 Buscaremos sus padres');
            
            newObject = parentSearch.search(newObject.parent.toString())[0].item;
        } else {
            alert(newObject.shareholder + ' Found');
            break;
        }
    }
}

Solution 2:[2]

You may want to check JSONPath for that deep lookup : https://jsonpath.com/.

It allows you to make a string query and execute it on an object and returns fields that match the query.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Ashok
Solution 2