创建javascript数组(多维)或javascript对象是一种更好的方法

时间:2012-11-24 11:29:20

标签: javascript json jquery multidimensional-array

以下是json结构:

jsonResponse
    Folder 01
        Product 01 - Folder 01
        Product 02 - Folder 01
        Product 03 - Folder 01
    Folder 02
        Product 01 - Folder 02
        Product 02 - Folder 02
        Product 03 - Folder 02
    Folder 03
        Product 01 - Folder 03
        Product 02 - Folder 03
        Product 03 - Folder 03
    Folder 04
        Product 01 - Folder 04
        Product 02 - Folder 04
        Product 03 - Folder 04  

我的要求是将文件夹名称和产品存储在各自的文件夹中。我能够将文件夹名称存储在一个数组中,但需要将产品存储在相应的文件夹中,这是我无法完成的。我使用jquery1.8来读取json响应,然后使用每个函数创建文件夹数组。

对此表示高度赞赏。

提前致谢

1 个答案:

答案 0 :(得分:2)

我会创建一个文件夹对象数组,其中每个对象都包含一个产品对象数组。这样可以灵活地保存您合理需要发送的有关文件夹和产品的任何其他数据,例如产品的价格。

结构示例:

var folders = [
  {
    name: 'Folder 01',
    products [
      { name : 'Product 01' },
      { name : 'Product 02' },
      { name : 'Product 03' }
    ]
  },
  {
    name: 'Folder 02',
    products [
      { name : 'Product 01' },
      { name : 'Product 02' }
    ]
  }
];

从数据构建数组的示例:

var folders = [];

// data that you would get from looping the JSON data:
var folderName = 'Folder 01'
var products = ['Product 01', 'Product 02'];

var prod = [];
for (var i = 0; i < products.length; i++) {
  prod.push({ name: products[i] });
}
var folder = { name: folderName, products: prod };
folders.push(folder);