Javascript数组不全空声明全局
问题描述:
我想清空全局声明的JavaScript数组。这里是我的代码 - >Javascript数组不全空声明全局
var arr = [];
var store = [];
var result_count = '';
var result = '';
var store_count = '';
$('select').on('change', function() {
arr.push(this.value);
var record_count = arr.length;
for (var i = 0; i < record_count; i++) {
store[i] = arr[i].split("-");
}
store_count = store.length;
});
$("#save_seting_permission").click(function() {
$.ajax({
type: 'post',
dataType: 'JSON',
url: base_url + "admin/permission_submit",
data: {
result: JSON.stringify(store),
result_count: store_count
},
success: function(result) {
/* while(store.length > 0)
{
store.pop();
} */
store.length = 0;
//console.log(store);
},
});
});
阵列名为店全局声明。我正在推送下拉变化事件的值,&向ajax提交的数据库发送值&清除(清空)数组。下一次当我向数组推送值时,旧值仍然存在于数组中(尽管我已经在ajax成功中清除了它)。
答
为什么你不使用这个?
store = [];
这清空数组毫无疑问。这是一个新的空数组的分配,而不是修改旧的数组。
在这里你有一个如何清空数组的方法列表 - How do I empty an array in JavaScript?。尽管您提供的解决方案是有效的,但我没有看到它不应该起作用的任何原因。
答
成功回调之后ü可以只guive新的价值,你的阵列:
success: function(result) { store = [];}
是的,我已经试过谓也。数组正在清除Ajax成功,但值仍然在onchange。数组范围有问题吗? –
我想你也需要清空arr,因为store的值来自这里:arr = [] – splifo