JSFiddle - React, Tailwind, and code Playground

by etiennenoel

JavaScript

function CommandManager() {
  var self = this;

  self.commands = new Array();
  self.commandsFound = new Array();

  self.ignoreDifferenceRatioBelow = 0.5;


  self.init = function() {
    self.commands.push(new LoadCommand());
  }

  self.getCommandFromCommandKeyword = function(commandKeyword) {
    for(var indexCommands = 0; indexCommands < self.commands.length; indexCommands++) {
      var command = self.commands[indexCommands];

      if(command.keyword == commandKeyword) {
        return command;
      }
    }

    return null;
  }


  self.getEditDistance = function getEditDistance(string1, string2) {
    var m = string1.length;
    var n = string2.length;
    var d = 0;
    var c = new Array();

    for(var k = 0; k <= m; k++)
      c[k] = [0];

    for(var l = 1; l <= n; l++)
      c[0][l] = 0;

    for(var i = 1; i <= m; i++) {
      for(var j = 1; j <= n; j++) {
        if(string1.charAt(i-1) == string2.charAt(j-1))
          d = 0;
        else
          d = 1;

        c[i][j] = Math.min(c[i-1][j-1]+d,Math.min(c[i-1][j] + 1,c[i][j-1] + 1));
      }

    }

    return c[m][n];
  }

  self.getNumberOfCharacterSimilarFromBeginning = function(string1, string2) {
    var shortestString = string1,
      longestString = string2;

    if(string1.length > string2.length) {
      shortestString = string2;
      longestString = string1;
    }

    var numberOfCharacterSimilarFromBeginning = 0;
    for(var i = 0; i < shortestString.length; i++) {
      if(shortestString[i] == longestString[i]) {
        numberOfCharacterSimilarFromBeginning++;
      }
    }

    return numberOfCharacterSimilarFromBeginning;
  }

  self.getPreciseness = function(string1, string2) {

    //We first look to see if the string are equals
    if(string1 == string2) {
      return 1;
    }

    //If they don't have the same length or the editing distance is bigger than 2, we want to see if they share a pattern at the beginning
    if(string1.length < string2.length) {
      var...