在生成阵列之前清除阵列

时间:2014-02-26 07:59:04

标签: javascript jquery arrays

在重建数组之前,我遇到了清除数组的问题。这是我写的代码

这是单击带有saveBtn as id的按钮时的代码

jQuery("#saveBtn").on('click',function(){
    var selectedColsArray =[];
    jQuery('#editDisplay li:not(.strike)').each(function(i){
        selCols = jQuery(this).text();
        selectedColsArray.push(selCols);
    });
    var divID = jQuery(this).parents().eq(2).attr('id');
    hideCols(selectedColsArray);
    jQuery('#editWindow').hide();
});

function hideCols(selectedCols){
    availableColsArr = [];
    jQuery('#documentReferences .dataTables_scrollHeadInner th').each(function(){
        columnName = jQuery(this).text();
        availableColsArr.push(columnName);
    });
    var result = [];
    var i = 0;
    jQuery.grep(availableColsArr, function(j) {
        if (jQuery.inArray(j, selectedCols) == -1) result.push(j);
        i++;
    });

    jQuery('#documentReferences .dataTables_scrollHeadInner th').each(function(){
        for(var k=0;k<result.length;k++){
            colText = jQuery(this).text();
            if(colText == result[k]){
                var colID = jQuery(this).attr('class').split(/\b/)[0];
                jQuery('.'+colID).hide();
            }
        }

        for(var k=0;k<selectedCols.length;k++){
            colText1 = jQuery(this).text();
            if(colText1 == selectedCols[k]){
                var colID = jQuery(this).attr('class').split(/\b/)[0];
                jQuery('.'+colID).show();
            }
        }

    });

}

但是当我点击保存按钮时,数组没有重建。 每次单击保存按钮时,如何清除它并构造新数组。 我在声明数组后尝试使用selectedColsArray.length = 0。但是不起作用

1 个答案:

答案 0 :(得分:0)

因为selectedColsArray是匿名函数中声明的变量。如果要第二次执行该函数,将声明一个新变量。它不会是同一个变量。

如果记录了一个新数组并且它看起来与前一个数组类似,则表示相同的元素已被推送到新数组,或者您没有看到数组的真实表示。

在记录之前尝试将数组转换为字符串,可能会得到不同的结果。

console.log(JSON.stringify(selectedColsArray));