在重建数组之前,我遇到了清除数组的问题。这是我写的代码
这是单击带有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。但是不起作用
答案 0 :(得分:0)
因为selectedColsArray
是匿名函数中声明的变量。如果要第二次执行该函数,将声明一个新变量。它不会是同一个变量。
如果记录了一个新数组并且它看起来与前一个数组类似,则表示相同的元素已被推送到新数组,或者您没有看到数组的真实表示。
在记录之前尝试将数组转换为字符串,可能会得到不同的结果。
console.log(JSON.stringify(selectedColsArray));