gpt4 book ai didi

javascript - 未定义不是对象 - 尝试访问 json 对象时

转载 作者:行者123 更新时间:2023-12-03 03:39:16 24 4
gpt4 key购买 nike

我目前正在尝试使用 Flickr API 和 javascript 根据搜索查询(在本例中为狗)生成页面。当行

var hyperLink = "https://www.flickr.com/photos/" + photo.owner + "/" + photo.id + ".jpg";

运行它表明 undefined 不是 photo.owner 的对象。我可以使用 console.log(photo.owner) 打印出 photo.owner,但无法访问它来仅打印 url 中的信息。

完整代码为:

<!DOCTYPE html>
<html lang="en">
<head>
<title>The Flickr Experiment</title>
</head>
<body id ="1">


<script>
function jsonFlickrApi(rsp) {
var str = "";
str +="<h1>Doggo piccies from Flickr</h1>";
str +="<h3>Total piccies: " + rsp.photos.photo.length;
var i;
for (i = 0; i <= rsp.photos.photo.length; i++) {
var photo = rsp.photos.photo[i];
var imageTitle = photo.title;
var hyperLink = "https://www.flickr.com/photos/" + photo.owner + "/" + photo.id + ".jpg";
var imgLink = "https://farm" + photo.farm + ".staticflickr.com/" + photo.server + "/" + photo.id + "_" + photo.secret + "_t.jpg";
str +="<a href=\"" + hyperLink + "\"><img alt=\"" + imageTitle + "\" src=\"" + imgLink + "\"/></a>"
}

document.writeln(str);
}
</script>


<script src="https://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=XXXXf&tags=golden-retriever&per_page=100&format=json">
</script>
</body>

</html>

最佳答案

数组是从零开始的。这意味着如果数组的长度为 3,则最高索引为 2。因此循环条件必须为

i < rsp.photos.photo.length
//^^ strictly smaller, not smaller or equal

如果没有,您将访问不存在的索引(即数组的长度),这将导致您收到的错误 undefined

简单的例子:

var arr = [1,2,3];
console.log(arr[0]);
console.log(arr[1]);
console.log(arr[2]);
console.log(arr[arr.length]);

关于javascript - 未定义不是对象 - 尝试访问 json 对象时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45705878/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com