2015-11-26 98 views
0

我有函數,它在調用方法'saveSelectedValue'上發生變化。On change刪除數組中的所有內容並在其中添加新值

this.$filtercat.on('change', { that : this }, this.saveSelectedValue); 

該方法只做一件事:將數據保存在數組中。

saveSelectedValue : function (e) { 
    var that = e.data.that, 
    selectArray = that.filterSelectedCategories; 
    selectArray.push($('.posts-filter-cat').val()); 
    console.log(selectArray); //every time gives me extended array 
}, 

現在我正在給現有數組添加新值。但是我想刪除所有內容並在每次更改時添加新的數組值。

+1

看到這個答案對於每一個可能的方法http://stackoverflow.com/a/1232046/4543256 –

回答

0

您需要在推送新值之前清除數組。刪除所有exisiting值簡單的方法是設置長度0

saveSelectedValue : function (e) { 
    var that = e.data.that, 
    selectArray = that.filterSelectedCategories; 
    selectArray.length = 0; // clear selectArray array 
    selectArray.push($('.posts-filter-cat').val()); 
    console.log(selectArray); 
}, 
+1

無法大多是被壓縮到:'that.filterSelectedCategories; = [$('。posts-filter-cat')。val()]'? – Cerbrus

+1

@Cerbrus也許,但它會覆蓋filterSelectedCategories數組,並且引用將被打破。不確定OP使用什麼框架,但可能會導致問題。 – dfsq

+0

如果我知道數組中只有1個項目,它可能是同樣的事情。 selectArray.splice(0,1);對? – max

相關問題