【问题标题】:array.push not working within ajax and for looparray.push 在 ajax 和 for 循环中不起作用
【发布时间】:2019-12-17 13:22:10
【问题描述】:

我正在运行 ajax 以从数据库中获取 JSON 对象。有了这些数据,我试图将一些部分传递到一个数组中,但它不断出现未定义。

来自 ajax 的成功对象存储在数据中。

我设置了一个名为 username2 的数组 然后我得到对象长度 运行 for 循环并尝试将对象 data[]['user'] 推送到数组中。

下面的代码后面是我的控制台日志,每个用户名2 我得到未定义。我错过了什么傻事

        var username2 = [];
        count = Object.keys(data).length;

        for (i = 1; i < count; i++) {
            var test1 = data[i]['user'];
            username2.push(test1);
            console.log(i);
            console.log('test1 : ' + test1);
            console.log('username2 : ' + username2[i]);
        }

 1
 test1 : sean
 username2 : undefined
 2
 test1 : berk
 username2 : undefined
 3
 test1 : erbwr
 username2 : undefined
 4
 test1 : svs
 username2 : undefined
 5
 test1 : dad
 username2 : undefined
 6
 test1 : vdhbt
 username2 : undefined

【问题讨论】:

  • 您的 for 正在从 1 迭代,而数组正在从 0 进行索引。因此push 总是减一。

标签: jquery arrays ajax


【解决方案1】:

请从 0 开始迭代,如下所示

    for (i = 0; i < count; i++) {
        var test1 = data[i]['user'];
        username2.push(test1);
        console.log(i);
        console.log('test1 : ' + test1);
        console.log('username2 : ' + username2[i]);
    }

【讨论】:

  • 谢谢你这是一个简单的错误。我想从对象的 1 开始,忘记了从 0 开始的数组。现在一切正常。盯着这个看了好久没看到
猜你喜欢
  • 2020-05-04
  • 1970-01-01
  • 1970-01-01
  • 2018-08-21
  • 2020-10-17
  • 2020-03-30
  • 1970-01-01
  • 2014-10-15
  • 2018-07-28
相关资源
最近更新 更多