嵌套 if 语句 javascript

发布于 2025-01-17 04:38:12 字数 645 浏览 1 评论 0原文

我正在尝试进行查找,直到找到特定值;目前使用这样的 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 语句?

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 ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

单调的奢华 2025-01-24 04:38:12

您可以使用递归,如下所示:

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

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;
        }
    }
}
简美 2025-01-24 04:38:12

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

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

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文