Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript将对象推入数组不起作用_Javascript_Arrays_Node.js_Object - Fatal编程技术网

Javascript将对象推入数组不起作用

Javascript将对象推入数组不起作用,javascript,arrays,node.js,object,Javascript,Arrays,Node.js,Object,im使用节点mirc从mysql检索数据 然后我想使用下面的代码将数据转换为数组: function getQuestion (arr{ var obj = {}; connection.connect(); connection.query("SELECT * FROM quiz", function (err, rows, fields) { if (err) throw err; for (var i = 0; i < r

im使用节点mirc从mysql检索数据

然后我想使用下面的代码将数据转换为数组:

function getQuestion (arr{
    var obj = {};

    connection.connect();
    connection.query("SELECT * FROM quiz", function (err, rows, fields) {
        if (err) throw err;

        for (var i = 0; i < rows.length; i++) {
            var row = rows[i];
            obj = {"id":row.id, "question":row.question, "answers":row.answers.split(", ")};
            f100.push(obj);
        };
    });
    connection.end();
}
f100 = [];
getQuestion();
console.log(f100);
函数getQuestion(arr{
var obj={};
connection.connect();
connection.query(“从测验中选择*”,函数(错误、行、字段){
如果(错误)抛出错误;
对于(变量i=0;i

但是,它唯一的印刷品是
[]

连接。查询是异步的,因此我建议在
连接内对
f100
进行控制台操作。查询
回调。如果您想在完成填充后对
f100
执行某些操作,则需要从连接查询回调内将其传递到另一个函数中。例如:

connection.query("SELECT * FROM quiz", function (err, rows, fields) {
    if (err) throw err;

    for (var i = 0; i < rows.length; i++) {
        var row = rows[i];
        obj = {"id":row.id, "question":row.question, "answers":row.answers.split(", ")};
        f100.push(obj);
    };

    console.log(f100); // should console out correctly here
    handleArray(f100); // passes in f100 to a new function
});
connection.query(“从测验中选择*”,函数(错误、行、字段){
如果(错误)抛出错误;
对于(变量i=0;i
由于
.query()的
异步行为,执行需要一些时间,但您在调用函数后正在执行日志。您需要将日志放入回调
.query()
函数中

function getQuestion (arr{
    var obj = {};

    connection.connect();
    connection.query("SELECT * FROM quiz", function (err, rows, fields) {
        if (err) throw err;

        for (var i = 0; i < rows.length; i++) {
            var row = rows[i];
            obj = {"id":row.id, "question":row.question, "answers":row.answers.split(", ")};
            f100.push(obj);
        };

        // do log here
        console.log(f100);
    });
    connection.end();
}
f100 = [];
getQuestion();
函数getQuestion(arr{
var obj={};
connection.connect();
connection.query(“从测验中选择*”,函数(错误、行、字段){
如果(错误)抛出错误;
对于(变量i=0;i
通过在for each语句后面放一个console.log()语句来检查是否正在检索任何行,以确定问题的确切位置。由于JS异步行为!!@YahyaUddin在检索到的数据中没有问题,我已经在测试了