vue 操作数组,原数组怎么不让它改变?

vue中肯定遇到过这个问题,想对数组操作,可是原数组又会改变,怎么办呢,提前copy一份能行吗,

todo: [1,2,3,4,5],

var arr = this.todo;

这样肯定不行的,那么肯定是新建数组循环添加,把老数组的元素全部添加到新数组里。

var newArr = [];

todo.forEach(function(e,i){

  newArr.push(e);

})

然后拿到新数组去操作,有点麻烦,就可以用到计算属性。

computed:{

changeTodo: function(){

return this.todo.filter(function(number){

return number%2 ===0

})

}

}

这样就得到了新数组也不会改变老数组的内容。

计算属性不适用的时候可以换成methods方法来使用。