No reason to split into sourceParts, use the regex to extract matches directly.
authorJoe Wreschnig <joe.wreschnig@gmail.com>
Mon, 19 May 2014 08:44:51 +0000 (10:44 +0200)
committerJoe Wreschnig <joe.wreschnig@gmail.com>
Mon, 19 May 2014 08:44:51 +0000 (10:44 +0200)
string-lerp.js

index 8e3ef6417ab7fb846538f5bc57348516fcef9753..bb799a4743e828658c7eef1c3d3d5df8716b981d 100644 (file)
             numerals gives undefined results.
         */
 
-        var sourceParts = source.split(NUMBERS);
         var targetParts = target.split(NUMBERS);
-        var destParts = targetParts;
-        for (var i = 1; i < sourceParts.length; i += 2) {
-            var sourcePart = sourceParts[i];
+        var match;
+        var i = 1;
+        while ((match = NUMBERS.exec(source))) {
+            var sourcePart = match[0];
             var targetPart = targetParts[i];
             var part = nlerp(+sourcePart, +targetPart, amount);
             var sourcePoint = sourcePart.indexOf(".");
                 targetPoint >= 0 ? (targetPart.length - 1) - targetPoint : 0,
                 amount));
             targetParts[i] = part.toFixed(point);
+            i += 2;
         }
         return targetParts.join("");
     }