在谷歌搜索了一个小时后,我对如何创建&在JS中操纵一个关联数组(我知道它实际上是一个对象)。我试图建立一个关联数组/对象,因为我循环浏览了我的页面元素:
var array_modules = {};
$('.module').each(function() {
var this_element = $(this);
var module_top = this_element.data('top');
var module_bottom = this_element.data('bottom');
array_modules.push({'top': module_top, 'bottom': module_bottom});
});
在其他地方,我想要检索我的阵列的内容:
for (var index in array_modules) {
var top = array_modules['top'];
var bottom = array_modules['bottom'];
alert('top = ' + top + ' and bottom = ' + bottom);
}
但这些都不起作用。我做错了什么?
答案 0 :(得分:2)
您只能将数据推送到数组中。我希望以下代码适合您。
var array_modules = [];
$('.module').each(function() {
var this_element = $(this);
var module_top = this_element.data('top');
var module_bottom = this_element.data('bottom');
array_modules.push({'top': module_top, 'bottom': module_bottom});
});
for (var index in array_modules) {
var top = array_modules[index]['top'];
var bottom = array_modules[index]['bottom'];
alert('top = ' + top + ' and bottom = ' + bottom);
}
这会创建一个关联对象数组
答案 1 :(得分:1)
在代码的第一部分,您使用array_modules
只是一个数组而不是关联,只需使用array_modules = [];
在第二部分,您将迭代一个关联数组但它应该是array_modules[index]['top']
。不过,只需更改为数组就可以进行forEach
循环。
无论如何,这就是我要做的事情:
var array_modules = [];
$('.module').each(function() {
array_modules.push($(this).data());
});
array_modules.forEach(function(data){
console.log(data.top, data.bottom);
})