我为ajax
呼叫giphy
,其代码为:
$.ajax({
url: queryURL,
method: "GET"
}). then(function(response) {
console.log(response);
当我查看控制台日志时,有一个对象的第一个属性是data。数据的每个索引都是另一个对象,在该对象内部有两个我要提取的属性rating
和url
。我希望能够不仅列出特定索引的rating
和url
,而且还列出该数据数组中的每个索引。最好的方法是什么?目前,我已经尝试过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);
});
}
答案 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"]