全局声明的Javascript数组没有清空

时间:2016-06-10 10:45:04

标签: javascript arrays

我正在尝试清空全局声明的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);
        },
    });
});

全局声明的名为 store 的数组。我正在推动下降变化事件的价值观,&amp;在ajax提交中向数据库发送值&amp;清除(清空)数组。下次再次将值推送到数组时,旧值仍然存在于数组中(尽管我已经在ajax中成功清除了它)。

2 个答案:

答案 0 :(得分:1)

为什么不使用这个?

store = [];

这毫不怀疑地清空阵列。它是新空数组的赋值,而不是修改旧数组。

这里列出了一些如何清空数组的方法 - How do I empty an array in JavaScript?。虽然您提供的解决方案是有效的,但我不知道为什么它不起作用。

答案 1 :(得分:0)

成功回调后你可以为你的数组提供新值:

success: function(result) { store = [];}