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);
});