Javascript 尝试遍历API数据时遇到问题

Javascript 尝试遍历API数据时遇到问题,javascript,jquery,html,ajax,Javascript,Jquery,Html,Ajax,我试图遍历从AJAX调用返回的数组,以记录程序的相关数据 当Iconsole.log(response.data.url)时,将返回所有相关数据。但是,我需要将这些数据推送到一个数组中,以便以后使用。我在函数中启动了一个for循环,但是当我检查控制台时,它返回一条错误消息 url未定义 我不确定错误是从哪里来的,因为在函数正常工作之前,第一个console.log。我是编程新手。 我的代码如下: function callAJAX() { $.ajax({ url: userSear

我试图遍历从AJAX调用返回的数组,以记录程序的相关数据

当I
console.log(response.data.url)
时,将返回所有相关数据。但是,我需要将这些数据推送到一个数组中,以便以后使用。我在函数中启动了一个
for
循环,但是当我检查控制台时,它返回一条错误消息

url未定义

我不确定错误是从哪里来的,因为在函数正常工作之前,第一个
console.log。我是编程新手。
我的代码如下:

function callAJAX() {
  $.ajax({
    url: userSearchURL,
    method: "GET"
  }).then(function(response) {
    console.log(response.data.url)
    for (i = 0; i <= response.data.length; i++) {
       console.log(response.data[i].url)
    }
  })
}
函数callAJAX(){
$.ajax({
url:userSearchURL,
方法:“获取”
}).然后(功能(响应){
console.log(response.data.url)

对于(i=0;i,这里是一个带键的对象。为了像数组一样在对象上迭代,需要利用内置的
object.keys()
函数。请尝试以下操作,而不是
for
循环:

Object.keys(response.data).forEach(dataKey => {
  console.log(response.data[dataKey])
});

在一种情况下,您记录的是
response.data.url
,而在另一种情况下记录的是
response.data[i].url
。您应该编辑问题以显示您收到的数据的格式。如果
response.data.url
返回url,则
response.data
不是数组,因此您无法对其进行迭代。@vlaz是对的,您没有返回数组,您正在访问对象的第一级,response.data.length是und已定义,因为对象没有“长度”属性是一个旁注,即使
response.data
是一个数组,你也不应该这样做
i同样,在一定次数的迭代之后,我如何停止循环?现在它运行整个数据集,但我只需要返回前15个值?因为上面的代码会遍历
Object.k创建的新数组中的每个元素eys()
,您可以创建一个新变量
let array=Object.keys(response.data)
,然后您可以像数组一样处理。因此,现在可以使用一个for循环,其中
i
小于最大数组长度或15,以较大者为准。我可以执行类似这样的操作:
for(let i=0;i<(array.length