JavaScript Ajax数据是数组,但长度未定义

JavaScript Ajax data is array but length is undefined

本文关键字:未定义 数组 Ajax 数据 JavaScript      更新时间:2023-09-26

我有以下Json结果:

(取自控制台)

data
Object {0: Object, 1: Object, 2: Object, 3: Object, 4: Object, 5: Object, 7: Object}

如果我在控制台中执行data[0],我会得到以下结果:

Object {id: 125, Module_id: 2, academy_id: 7, Team_id: 5, end: "2014-08-12 00:00:00"…}

然而,当我做data.length的值是undefined谁能告诉我发生了什么?

使用

Object.keys(data).length;

演示

object .keys()方法返回给定对象本身的数组属性所提供的顺序相同为…In循环(不同之处在于for-in循环枚举属性)。

您将json结果结构化为Object 而不是Array。不要把它们混在一起!data[0]是结果对象的第一个实例变量的值。如果您想在发送json对象进行解析之前将其构造为数组,那么在php文件中确保将该对象编码为数组

read.php

<?
    $data = array('a' => 1, 'b' => 2, 'c' => 3);
    print json_encode($data);
?>

这将按预期工作:

Object.getOwnPropertyNames(data).length