Как правильно перевести даный код Delphi на JavaScript?

341
25 октября 2017, 07:37

Всем доброго! Помогите пожалуйста перевести этот код с Delphi в javascript Даная функция на Delphi должна возвращать строку, но я что-то не вижу/не понимаю в каком месте и что там возвращается, но полагаю что это переменная result (Delphi вижу в первый раз) :

unit ipscrpt;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Dialogs, StdCtrls;
function IpsEncodeString( source: string ): string;
function IpsDecodeString( source: string ): string;
type
arr = array[0..9, 0..9] of integer;
const mas1: arr = (
  (1, 2, 3, 6, 0, 8, 5, 4, 7, 9),
  (2, 1, 8, 6, 5, 9, 7, 0, 4, 3),
  (7, 6, 1, 5, 8, 4, 2, 9, 3, 0),
  (2, 6, 5, 7, 4, 0, 8, 1, 3, 9),
  (0, 8, 6, 2, 7, 9, 4, 5, 3, 1),
  (5, 7, 8, 0, 6, 9, 2, 4, 3, 1),
  (0, 6, 5, 3, 8, 7, 1, 2, 9, 4),
  (9, 7, 8, 6, 3, 0, 1, 5, 2, 4),
  (1, 0, 5, 9, 2, 7, 3, 6, 4, 8),
  (6, 2, 9, 4, 1, 0, 8, 5, 3, 7)
);

implementation
function IpsEncodeString( source: string ): string;
var
  i,j,k: integer;
begin
  for i:=length(source) downto 1 do
  if not(source[i] in ['0'..'9']) then delete(source,i,1);
  result := '';
  i := 0;
  j := 0;
  while (i <= Length(source) - 1) do begin
    k := mas1[j, StrToInt(source[i+1])];
    result := result + IntToStr(k);
    inc(i);
    inc(j);
    if (j>=10) then j := 0;
  end;
end;
end.

Вот пробы на js, но правыльно ли это? :

var mas1  = [
    [1, 2, 3, 6, 0, 8, 5, 4, 7, 9],
    [2, 1, 8, 6, 5, 9, 7, 0, 4, 3],
    [7, 6, 1, 5, 8, 4, 2, 9, 3, 0],
    [2, 6, 5, 7, 4, 0, 8, 1, 3, 9],
    [0, 8, 6, 2, 7, 9, 4, 5, 3, 1],
    [5, 7, 8, 0, 6, 9, 2, 4, 3, 1],
    [0, 6, 5, 3, 8, 7, 1, 2, 9, 4],
    [9, 7, 8, 6, 3, 0, 1, 5, 2, 4],
    [1, 0, 5, 9, 2, 7, 3, 6, 4, 8],
    [6, 2, 9, 4, 1, 0, 8, 5, 3, 7]
]
function IpsEncodeString(source) {
var i, j, k;
source = source.replace(/\D/g,"");
result = '';
i, j = 0;
for (i = 1; i <= source.length-1; i++){
    k = mas1[j, parseInt(source[i])];
    result += k;
    j++;
    if (j >= 10){
        j = 0
    }
}
return result

}

READ ALSO
Как задать синхронное исполнение кода в функции?

Как задать синхронное исполнение кода в функции?

У меня есть код который должен исполняться по истечению времени:

300
presets, babel&hellip;webpack

presets, babel…webpack

Я дико извиняюсь, но сразу к делу:

278
Что такое &#171;псевдоклассы&#187; в JavaScript?

Что такое «псевдоклассы» в JavaScript?

Читая статью наткнулся на определение классов в JavaScript: «Псевдоклассом» или, более коротко, «классом», называют функцию-конструктор вместе...

314