如何定义多维混合数组(包括键和关联值)JavaScript

如何定义多维混合数组(包括键和关联值)JavaScript,javascript,arrays,multidimensional-array,image-gallery,Javascript,Arrays,Multidimensional Array,Image Gallery,我创建了一个javaScript库,文档可以在其中处理数量可变的元素。 我想定义一个多维数组,它存储每个现有galery的信息 JavaScript+jQuery 1.9.1 var-gallery=新数组; 画廊=['images','imageActive','width']; for(var i=0;igallery=new Array将创建一个空数组。在访问任何属性之前,您需要先用对象填充数组: var gallery = []; gallery = ['images','imageAc

我创建了一个javaScript库,文档可以在其中处理数量可变的
元素。 我想定义一个多维数组,它存储每个现有galery的信息

JavaScript+jQuery 1.9.1
var-gallery=新数组;
画廊=['images','imageActive','width'];

for(var i=0;i
gallery=new Array
将创建一个空数组。在访问任何属性之前,您需要先用对象填充数组:

var gallery = [];
gallery = ['images','imageActive','width'];

for (var i=0;i<$('.gallery').length;i++) {
    gallery.push({}); // increase length and add empty object

    gallery[i]['images'] = $('.gallery:eq['+i+'] img').index();
    gallery[i]['imageActive'] = 0;
    gallery[i]['width'] = $('.gallery:eq['+i+'] li').css('width');
}
var-gallery=[];
画廊=['images','imageActive','width'];

对于(var i=0;i分配给对象
{}

for (var i=0;i<$('.gallery').length;i++) {
   gallery[i] = {};
   gallery[i]['images'] = $('.gallery:eq['+i+'] img').index();

对于(var i=0;i首先,您的第一个赋值(
=new Array
)是完全不必要的,您将用下一行覆盖它,在下一行中,您将使用文字语法创建一个数组

我想你的意思是:

var gallery = [];
for (var i=0;i<$('.gallery').length;i++) {
    gallery[i] = {
        images:      $('.gallery:eq['+i+'] img').index(),
        imageActive: 0,
        width:       $('.gallery:eq['+i+'] li').css('width')
    };
}
它用于循环元素并构建数组,数组最初作为jQuery对象返回,因此我们使用它来获取底层实际数组。

var gallery = [];
for (var i=0;i<$('.gallery').length;i++) {
    gallery[i] = {
        images:      $('.gallery:eq['+i+'] img').index(),
        imageActive: 0,
        width:       $('.gallery:eq['+i+'] li').css('width')
    };
}
var gallery = $(".gallery").map(function() {
    var entry = $(this);
    return {
        images:      entry.find('img').index(),
        imageActive: 0,
        width:       entry.find('li').css('width')
    };
}).get();