从Javascript中删除重复部分(干式)

从Javascript中删除重复部分(干式),javascript,Javascript,我有下面的javascript切换不同的视图。所有的工作都很好,但是它是非常重复的。我想把它清理干净,但不知道该怎么做 function switchView () { var viewContainer = document.getElementById('content-wrapper'); var tileBtn = document.getElementById('tile-btn'); var listBtn = document.getElementById

我有下面的javascript切换不同的视图。所有的工作都很好,但是它是非常重复的。我想把它清理干净,但不知道该怎么做

function switchView () {

var viewContainer = document.getElementById('content-wrapper');
var tileBtn       = document.getElementById('tile-btn');
var listBtn       = document.getElementById('list-btn');
var swipeBtn      = document.getElementById('swipe-btn');


tileBtn.addEventListener( 'click', function(e){

if (viewContainer.classList.contains('list-view') || 
  viewContainer.classList.contains('swipe-view') ) {
   e.preventDefault();
  viewContainer.classList.remove('list-view');
  viewContainer.classList.remove('swipe-view');
  viewContainer.classList.add('tile-view');
}
});

listBtn.addEventListener( 'click', function(e){

if (viewContainer.classList.contains('tile-view') || 
 viewContainer.classList.contains('swipe-view') ) {
   e.preventDefault();
    viewContainer.classList.remove('tile-view');
    viewContainer.classList.remove('swipe-view');
    viewContainer.classList.add('list-view');
}
});

swipeBtn.addEventListener( 'click', function(e){

if (viewContainer.classList.contains('list-view') || 
viewContainer.classList.contains('tile-view') ) {
   e.preventDefault();
    viewContainer.classList.remove('list-view');
    viewContainer.classList.remove('tile-view');
    viewContainer.classList.add('swipe-view');
}
});

};

switchView();

如果您有工作代码,并且希望对其进行优化或性能审查,那么codereview是最好的地方。'if'子句是不必要的——最坏的情况是,您将删除一个类,然后重新添加它,这是无害的——所以只需删除它即可。之后,除了要添加的类名之外,函数都是相同的,所以将它们组合成一个带有该类名参数的函数。(也就是说,@RaviChandra是正确的;codereview是解决这个问题的更合适的地方)谢谢@RaviChandra和Daniel,我将在那里发布它