2016-07-30 8 views
-1

// Im neu in der funktionalen Programmierung mit, was der beste Weg wäre, diese mit dem funktionalen Programmierung zu schreiben.Schreiben Shorter-Code Javascript

var SQUARE_X = 101, 
     SQUARE_Y = 83; 

// function to detect the enemy collison 
    function collisionDetect(axisA, axisB) { 
     var playerX = Math.floor(axisA.x/SQUARE_X); 
     var playerY = Math.floor(axisA.y/SQUARE_Y); 
     if (Array.isArray(axisB)) { 
      for (var i = 0; i < axisB.length; i += 1) { 
       var enemyX = Math.floor(axisB[i].x/SQUARE_X); 
       var enemyY = Math.floor((axisB[i].y)/SQUARE_Y); 
       if (enemyX === playerX && enemyY === playerY) { 
        return true; 
       } 
      } 
     } else { 
      var enemyX = Math.floor(axisB.x/SQUARE_X); 
      var enemyY = Math.floor((axisB.y)/SQUARE_Y); 
      if (enemyX === playerX && enemyY === playerY) { 
       return true; 
      } 
     } 

    }; 

Antwort

1

Ich bin nicht sicher, was Sie über functional bedeuten, aber wenn Sie nur Ihren Code wollen, Refactoring, hier einige Hinweis:

var SQUARE_X = 101, 
    SQUARE_Y = 83; 

// function to detect the enemy collison 
function collisionDetect(axisA, axisB) { 
    var playerX = Math.floor(axisA.x/SQUARE_X); 
    var playerY = Math.floor(axisA.y/SQUARE_Y); 

    return ([].concat(axisB)).some(function(ab) { 
     var enemyX = Math.floor(ab.x/SQUARE_X); 
     var enemyY = Math.floor(ab.y/SQUARE_Y); 
     if (enemyX === playerX && enemyY === playerY) { 
      return true; 
     } 
     return false; 
    }); 
} 

Die hier Vorteile sind, dass der Code kürzer ist, Der Login wird nur an einem Ort platziert, wenn Sie ihn ändern müssen, ist es einfach.

nicht sicher, warum müssen Sie hier funktional.

Verwandte Themen