如何访问AJAX对象内特定数组的每个索引

时间:2018-09-13 08:24:03

标签: ajax

我为ajax呼叫giphy,其代码为:

$.ajax({
  url: queryURL,
  method: "GET"
}). then(function(response) {
  console.log(response);

当我查看控制台日志时,有一个对象的第一个属性是data。数据的每个索引都是另一个对象,在该对象内部有两个我要提取的属性ratingurl。我希望能够不仅列出特定索引的ratingurl,而且还列出该数据数组中的每个索引。最好的方法是什么?目前,我已经尝试过for循环

for (var i = 0; i<response.data.length;i++){
  var dataIndex = response.data[i];
}  
then <creating a variable something like> 
  var imgURL = response.data[dataIndex].url

,但不起作用。

这是完整的代码

function displayTopicGif() {
var topic = $(this).attr("data-name");
// query url
var queryURL = "https://api.giphy.com/v1/gifs/search?q=" + topic + "&limit=20&rating=r&api_key=";

$.ajax({
    url: queryURL,
    method: "GET"
}).then(function (response) {
    console.log(response);
    // for loop to create a variable for the index of the objects data
    for (var i = 0; i < response.data.length; i++) {
        var dataIndex = response.data[i];

    }
    // where the gif's will be dumped
    var topicDiv = $("<div class='topic'>");
    // rating of gif
    var rating = response.data[0].rating;
    console.log(rating);
    // Creating an element to have the rating displayed
    var pOne = $("<p>").text("Rating: " + rating);
    // add to the rating element
    topicDiv.append(pOne);
    // retrieve the IMG of the gif

    var imgURL = response.data[0].url;

    var image = $("<img>").attr("src", imgURL);
    topicDiv.append(image);
    // put gif into topic-view div
    $("#topic-view").prepend(topicDiv);


});
}

1 个答案:

答案 0 :(得分:1)

您可以使用$.isPlainObject检查某物是否是对象,然后通过以下方法通读其属性:

for (key in object) {
   var value = object[key];
   //log
}

或者您可以使用Object.getOwnPropertyNames();获取密钥。请参阅MDN的以下示例摘录:

const object1 = {
  a: 1,
  b: 2,
  c: 3
};

console.log(Object.getOwnPropertyNames(object1));
// expected output: Array ["a", "b", "c"]