如何从数组中的对象访问值
How can I access the value from an Object inside an array
当我从 rss 数据循环时,我想从对象中提取 url 值。
$.ajax({
url : 'http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=30&callback=?&q=' + encodeURIComponent('http://www.dnoticias.pt/rss/actualidade/geral'),
dataType : 'json',
success : function (data) {
if (data.responseData.feed && data.responseData.feed.entries) {
$.each(data.responseData.feed.entries, function (i, e) {
title = e.title;
description = e.description;
category = e.categories[0];
media = e.mediaGroups;
console.log(media);
}
}
});
控制台日志的输出如下:
mediaGroups: Array[1]
0: Object
contents: Array[1]
0: Object
type: "image/jpeg"
url: "http://...."
谢谢
您只需通过索引访问数组元素,属性 通过 属性 名称:
e.mediaGroups[0].contents[0].type
从你显示的输出中 mediaGroups
是一个对象数组,它本身包含一个 contents
属性 这是另一个对象数组,所以你需要使用 nested循环从这些对象中取出每个 url
属性。
$.each(data.responseData.feed.entries, function(_, entry) {
$.each(entry.mediaGroups, function(_, mediaGroup) {
$.each(mediaGroup.contents, function(_, content) {
var url = content.url;
// use url as required here...
});
});
});
如果您总是只想从数组中检索第一项,并且可以保证每个子数组至少包含一项,那么您可以像这样通过索引简单地访问它们:
$.each(data.responseData.feed.entries, function (i, entry) {
var url = entry.mediaGroups[0].contents[0].url;
// use url as required here...
});
如果数组只有一个元素,就这么简单:
media = e.mediaGroups[0];
contents = media.contents[0];
然后你可以这样做:
someVar1 = contents.type;
someVar2 = contents.url;
否则你将不得不遍历 mediaGroups
和 contents
当我从 rss 数据循环时,我想从对象中提取 url 值。
$.ajax({
url : 'http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=30&callback=?&q=' + encodeURIComponent('http://www.dnoticias.pt/rss/actualidade/geral'),
dataType : 'json',
success : function (data) {
if (data.responseData.feed && data.responseData.feed.entries) {
$.each(data.responseData.feed.entries, function (i, e) {
title = e.title;
description = e.description;
category = e.categories[0];
media = e.mediaGroups;
console.log(media);
}
}
});
控制台日志的输出如下:
mediaGroups: Array[1]
0: Object
contents: Array[1]
0: Object
type: "image/jpeg"
url: "http://...."
谢谢
您只需通过索引访问数组元素,属性 通过 属性 名称:
e.mediaGroups[0].contents[0].type
从你显示的输出中 mediaGroups
是一个对象数组,它本身包含一个 contents
属性 这是另一个对象数组,所以你需要使用 nested循环从这些对象中取出每个 url
属性。
$.each(data.responseData.feed.entries, function(_, entry) {
$.each(entry.mediaGroups, function(_, mediaGroup) {
$.each(mediaGroup.contents, function(_, content) {
var url = content.url;
// use url as required here...
});
});
});
如果您总是只想从数组中检索第一项,并且可以保证每个子数组至少包含一项,那么您可以像这样通过索引简单地访问它们:
$.each(data.responseData.feed.entries, function (i, entry) {
var url = entry.mediaGroups[0].contents[0].url;
// use url as required here...
});
如果数组只有一个元素,就这么简单:
media = e.mediaGroups[0];
contents = media.contents[0];
然后你可以这样做:
someVar1 = contents.type;
someVar2 = contents.url;
否则你将不得不遍历 mediaGroups
和 contents