嵌套 if 语句 javascript

nested if statements javascript

我正在尝试进行查找,直到找到特定的值;目前正在使用这样的 if 语句,但现在它只有两个级别,我不需要在条件满足之前需要多少 if 语句。

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');

        }

有没有办法避免使用无限 IF 语句?

您可能需要检查 JSONPath 以进行深度查找:https://jsonpath.com/

它允许您进行字符串查询并在对象和匹配查询的 returns 字段上执行。

您可以按如下方式使用递归:

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');

    }
}

如果你不能使用递归,你可以使用下面的方法:

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;
        }
    }
}