Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在jquery每个循环中创建多维数组或对象_Javascript_Jquery_Arrays_Multidimensional Array - Fatal编程技术网

Javascript 在jquery每个循环中创建多维数组或对象

Javascript 在jquery每个循环中创建多维数组或对象,javascript,jquery,arrays,multidimensional-array,Javascript,Jquery,Arrays,Multidimensional Array,这就是我所得到的,我苦苦挣扎了几个小时。如果我alert(I)在每个循环中,它会给我1,2,3…,但是如果我想用作多维数组的键,它就像一个字符串“I” 这个话题有很多问题和答案,但没有一个能帮助我实现这个目标 我希望得到一个数组或obj,看起来像: positions[0]['offset'] = '120'; positions[0]['height'] = '300'; positions[1]['offset'] = '420'; positions[1]['hei

这就是我所得到的,我苦苦挣扎了几个小时。如果我
alert(I)
在每个循环中,它会给我
1,2,3…
,但是如果我想用作多维数组的键,它就像一个字符串
“I”

这个话题有很多问题和答案,但没有一个能帮助我实现这个目标

我希望得到一个数组或obj,看起来像:

   positions[0]['offset'] = '120';
   positions[0]['height'] = '300';
   positions[1]['offset'] = '420';
   positions[1]['height'] = '180';
   positions[2]['offset'] = '600';
   positions[2]['height'] = '100';
   positions[3]['offset'] = '700';
   positions[3]['height'] = '300';

这里是一个摆弄html的小玩意儿

你已经差不多做到了

在循环中,
elPositions
(此处重命名为
data
)在每次迭代时重新创建,然后用连续索引推送到数组中。无需在数据对象中指定
i
,因为推入数组时会自动分配
i

请参阅更新的小提琴:

和代码:

$(document).ready(function(){
    var positions=[];

    $( ".box" ).each(function() {
        var $this = $(this);
        var data = {};

        data.offset = $this.offset().top;
        data.height = $this.height();

        positions.push(data);
        // Now, positions[iteration_index] = { offset: x, height: y }
    });

    console.log(positions);
    console.log(positions[0].height);
    console.log(positions[0].offset);
});

我知道,我知道,我不应该在这里说谢谢。但是谢谢邹根:-)太棒了,也谢谢你告诉我我做错了什么@caramba-在评论中感谢他人的帮助没有什么错;)一般的立场是,不要在问题的末尾加上“谢谢”,这样问题就尽可能清晰明了了。@Josh Harrison非常感谢你。
$(document).ready(function(){
    var positions=[];

    $( ".box" ).each(function() {
        var $this = $(this);
        var data = {};

        data.offset = $this.offset().top;
        data.height = $this.height();

        positions.push(data);
        // Now, positions[iteration_index] = { offset: x, height: y }
    });

    console.log(positions);
    console.log(positions[0].height);
    console.log(positions[0].offset);
});