【问题标题】:get for loop data into array将for循环数据放入数组
【发布时间】:2019-07-02 17:08:54
【问题描述】:

这是我的脚本:

 function createSlots(experiences){
    return new Promise(function(resolve,reject){
        var slots = req.body.availableSlots;
        slots = JSON.parse( slots );
        var count = slots.length;
        var array = [];
        for(var i=0;i<count;i++){
            var date = slots[i].date;
            var timeAvailability = slots[i].time;
            //console.log(timeAvailability);
            var availability = new Availability({
                'expId':experiences._id,
                'availabilitydate': date,
                'availabilityslots': JSON.stringify(timeAvailability)
            });
            //console.log(availability);
            availability.save(function(err,availability){
                if(err){
                    reject(err);
                }else{
                    if(availability){
                        array.push(availability);
                        resolve();
                    }else{
                        reject(err);
                    }

                }
            });


        }
        console.log(array);
        var obj = {experience : experiences, availability:array}
        resolve(obj);
    });
}

我需要从 for 循环中获取所有插入的数据到单个数组中,但没有得到任何东西。为什么我得到数组。 [] 空白的。你能帮我么。谢谢。

【问题讨论】:

  • 你能显示调用这个函数的代码吗?
  • 也许创建一个 jsbin.com 示例。
  • @MathewBerg 当我 console.log(availability) 它给了我一个结果。但需要将所有循环数据放入单个数组中。我可以告诉你但是。在此函数之前还有更多函数调用。 validateFields().then(createExp).then(createSlots).then(function(data){ res.status(200).json({ msg:'Create Experience', data: data }); }).catch(function (err){ res.status(400).json({ msg: 'Could Not Create', error: err }); });
  • 你确定调用了对象可用性的保存函数吗?你确定在 save 函数里面是 array.push(availability);执行代码行?您是否在保存功能中放置了一些控制台日志?
  • @amedeoavogadro 是的,当我 console.log(array);它给了我正确的结果第一次循环运行它在第二次循环后给了我一个数组结果它给了我数组中的 2 个结果.....但是在循环之外它什么也不显示

标签: javascript jquery node.js


【解决方案1】:
function createSlots(experiences){
    return new Promise(function(resolve,reject){
        var slots = req.body.availableSlots;
        slots = JSON.parse( slots );
        var count = slots.length;
        var array = [];
        for(var i=0;i<count;i++){
            var date = slots[i].date;
            var timeAvailability = slots[i].time;
            //console.log(timeAvailability);
            var availability = new Availability({
                'expId':experiences._id,
                'availabilitydate': date,
                'availabilityslots': JSON.stringify(timeAvailability)
            });
            //console.log(availability);
            availability.save(function(err,availability){
                if(err){
                    reject(err);
                }else{
                    if(availability){

                        resolve();
                    }else{
                        reject(err);
                    }

                 }
            });
            array.push(availability);

        }
        console.log(array);
        var obj = {experience : experiences, availability:array}
        resolve(obj);
    });
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-25
    • 1970-01-01
    • 2017-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多