js中数组里有元素但是长度为0

图片说明
图片说明

图片说明

首先,你声明的是【】,这说明你声明的是数组,而你最后使用push的时候,由于放进去的是对象,是一个object,而数组在确定长度的时候,他所做的,是将所有的
“下标”转化为string,如果是由数字,如1,2,3的时候,他才会长度加一,所以,你这里有东西,也加进去了,但是下标不是数字,就length为0,
如果你要长度,你可以这么加数据:str[str.length]=a;

你这里ajax得到的data2.root不是数组,是json

对于后端来说,数组就是我们前端所谓的json

你可以吧console放在success里边看结果

感觉应该是ajax异步请求的问题,在执行$.ajax之前先执行了console.log语句。也就是说你是先打印了console,然后又进行的push

建议先打印下data2看看

设置一个setTimeout(()=>{
放接收的值,
},1000)

可以的,解决了就好了~~~