javascript - 如何在 Javascript 中创建多维数组?

标签 javascript jquery

我的目标是迭代 ID 为 ajaxResponse1 的表,并将每个列的值存储在单独的数组中。 valueArr 中的每个条目都将是包含单个值数组的列。

我尝试使用新数组而不是新对象,但我的屏幕似乎仍然没有收到任何输出警报。我是否应该使用 .push 的某种组合来将每个新列值放入适当的数组中?希望这是清楚的。有任何想法吗?谢谢!

var valuesArr = new Object();

$('#ajaxResponse1 tr').each( function() {
    var colNum = 0;
    $('th, td', this).each( function() {
        valuesArr[colNum] = valuesArr[colNum].push( $(this).html() );   
        colNum++;
    });
});

alert(JSON.stringify(valuesArr));

最佳答案

在数组实际存在之前,您无法将某些内容推送到该数组上。

因此,在内部循环的每次迭代中,如果初始数组不存在,则必须创建它:

var valuesArr = [];

$('#ajaxResponse1 tr').each( function() {
    $('th, td', this).each( function(i, el) { // nb: implicit column number
        var html = $(this).html();
        if (i in valuesArr) {
            valuesArr[i].push(html);
        } else {
            valuesArr[i] = [ html ];  // new array with one element
        }
    }
});

关于javascript - 如何在 Javascript 中创建多维数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10452933/

相关文章:

javascript - 将 ngOptions 绑定(bind)到范围外的数组

javascript - 如何在 Bootstrap 下拉菜单上编辑 CSS?

javascript - JS 中嵌套列表项的多维数组或 json 对象

javascript - 未捕获的类型错误无法读取未定义的属性 'value'

javascript - 淡出功能不适用于所有浏览器

javascript - 在重构中使用react-with-styles

jquery - 如何使用jquery提醒div元素内的nodeName

javascript - 将主体上的简单滚动速度更改为特定类别?

javascript - 为什么 jquery 不能准确地为数字设置动画?

javascript - React(Meteor)中的子组件不触发事件