javascript - 是否可以在 javascript/jquery 中创建一个空的多维数组?

标签 javascript jquery arrays multidimensional-array flickr

我正在尝试使用 Flickr API 创建一个非常基本的 Flickr 图库。我想要实现的是按标签对我的图片进行排序。我使用的是 jQuery.getJSON() 以便我可以解析 flickr.photosets.getPhotos 的 API 响应.

我有兴趣从 Flickr 获取的数据是与每张照片关联的标签和 URL。这样做的问题是,对我来说唯一合乎逻辑的方法是创建以下格式的多维数组:

Array['tag1'] => ['URL_1', 'URL_2', 'URL_3', 'URL_n'];

但是,我找不到任何方法来实现这一点。我的代码如下所示:

$.getJSON('http://api.flickr.com/services/rest/?api_key=xxx&method=flickr.photosets.getPhotos&user_id=xxx&format=json&extras=tags%2C+url_l%2C+url_sq&nojsoncallback=1&photoset_id=xxx', 
   function(data) {

     var imageArray = [];   
     $.each(data.photoset.photo, function(i, item) {

       imageArray[item.tags] = [item.url_sq,];

     });
});

我知道代码可能看起来很别扭,但我已经尝试了所有方法,但我无法解决这个问题。

最佳答案

var arr = [];
arr[0] = [];
arr[0][0] = [];
arr[0][0][0] = "3 dimentional array"

如果使用不当,多维数组会有很多空隙。二维数组称为矩阵。

我相信您的数据包含一个名为“tags”的空格分隔字符串,其中包含标签和单个 url。

var tagObject = {};
data.photoset.photo.forEach(function(val) {
  val.tags.split(" ").forEach(function(tag) {
    if (!tagObject[tag]) {
      tagObject[tag] = [];
    }
    tagObject[tag].push(val.url_sq);
  });
});
console.log(tagObject); 
/*
  {
    "sea": ["url1", "url2", ...],
    "things": ["url4", ...],
    ...
  }
*/

我不知道它是如何返回多个标签的。

关于javascript - 是否可以在 javascript/jquery 中创建一个空的多维数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7521796/

相关文章:

python - np.genfromtxt 不会生成二维数组

javascript - 加载资源失败,空白页

javascript - 箭头键导航不会移动到 TABLE 中附加的 TR

jQuery 无法在 F12 开发工具的 Internet Explorer 8 模式下工作

jquery - 如何在鼠标悬停时滚动图像?

java - 如何在java中创建由二维int数组组成的二维数组?

javascript - document.getElementById 不起作用,我该如何解决这个问题?

javascript - TypeError : $(. ..).visualize 不是一个函数

javascript - 将名称数组传递给 _.bindAll - 参数列表类型错误

带有 Int 数组的 Java HashMap