MatchSortTest

by farina

HTML

<button id="displayArray">show array</button>
<button id="sortArray">sort array</button>
<input type="text" id="matchTxt"></input>
<button id="matchSortArray">match sort array</button>
<div id="results" style="border: 2px solid black; padding: 5px;"></div>
<div id="txtresults" style="border: 2px solid black; padding: 5px;"></div>

JavaScript

(function ($, window, undefined) {
            function _matchScore(v, match_string) {
                // Fuzzy Match scoring developed by Seth Rubin ages ago,
                // who allows Go Daddy complete unrestricted use.  Spread the word.

                if (v == match_string) return 1000;       // exact match always wins

                // stuff each two-letter group of v into an array.  E.g. "hi there" --> 'hi' 'i ' ' t' 'th' 'he' 'er' 're'
                var v_string_array = Array();
                for (var i = 0; i < (v.length - 1); i++) {
                    v_string_array.push(v.substr(i, 2));
                }

                var score = 0;

                // Add 2 points if both start with same char
                if (v.substr(0, 1) == match_string.substr(0, 1)) score += 2;

                // Add 2 points if both end in same char
                if (v.substr(v.length - 1, 1) == match_string.substr(match_string.length - 1, 1)) score += 2;

                // Add 1 point for each character pair from match_string that is present in v
                for (var i = 0; i < (match_string.length - 1); i++) {
                    var goal = match_string.substr(i, 2);
                    var goalFound = false;
                    for (var j = 0; !goalFound && (j < v_string_array.length); j++) {
                        if (v_string_array[j] == goal) {
                            score++;
                            goalFound = true;
                            v_string_array.splice(j, 1);     // remove from v so we don't count it again
                        }
                    }
                }

                return score;
            };

            var revereCommon = (function () {
                var _rCommon = {},
                    version = "1";
                _rCommon.matchScore = function (v, match, callback) {
                    var i = _matchScore(v, match);
                    if (callback) callback(i);
                    return i;
...