javascript - 对象未在 JavaScript 中递归调用的函数中更新

标签 javascript

我试图通过递归函数获取数据,但是当调用递归函数时我的响应对象没有更新;

    function checkData(id) {
    var response = {
        new_id: '',
        status: false
    }

    var order = somefunction(id);

    var isOriginal = order.isOriginal
    var enddate = order.enddate
    var new_id = order.originalId

    // first check
    if (enddate == '' && isOriginal) {
        response.new_id = new_id;
        response.status = true;
    }

    //second check
    if (!isOriginal) {
        if (new_id) {
            checkData(new_id); // recursive call
        }
    }
    return response;
}

如果满足第二个检查条件,它会加载数据,但当响应被控制台时,它会显示较早初始化的初始数据。响应变量未通过递归调用更新。但是,如果第一次检查通过,它会更新。

最佳答案

根据@Fred Stark 的评论,通过重新调整递归调用成功解决,

function checkData(id) {
var response = {
    new_id: '',
    status: false
}

var order = somefunction(id);

var isOriginal = order.isOriginal
var enddate = order.enddate
var new_id = order.originalId

// first check
if (enddate == '' && isOriginal) {
    response.new_id = new_id;
    response.status = true;
}

//second check
if (!isOriginal) {
    if (new_id) {
        return checkData(new_id); // recursive call ---> called return here
    }
}
return response;
}

关于javascript - 对象未在 JavaScript 中递归调用的函数中更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66471459/

相关文章:

javascript - 如何在 Javascript 中访问闭包内的变量

javascript - catch javascript 的意外 token 错误

javascript - 类型错误 : Type 'string' is not assignable to type 'Colors'

javascript - Canvas 在事件监听器上消失

javascript - John Resig 简单继承属性的奇怪问题

javascript - Scala 返回值不是预期的

javascript - SelectBoxIt - 页面上的多个选择(动态)

javascript - 为什么我的事件没有为两个订阅者触发?

javascript - 隐藏从外部 url 加载的元素

javascript - 需要一个名为“token