Как портировать С++ метод на JavaScript?

Есть вот такой вот метод на C++
std::string Cryptography::DecryptLoginPassword(std::string password)
{
        std::size_t remainder = password.length() % 4;
        password.erase(0, remainder != 0 ? remainder : 4);
        for (std::size_t i = 0; i < password.length(); i++)
                password.erase(i, 1);
        for (std::size_t i = 2; i < password.length(); i += 3)
                password.insert(i, " ");
        std::stringstream ss(password);
        password.clear();
        std::size_t temporary;
        while (ss >> std::hex >> temporary)
                password += temporary;
        return password;
}

Я пытаюсь портировать его на JavaScript.
Вот что получается:
function DecryptPW(password){
    var remainder = password.length % 4;
    
    password = password.replace(password.substr(0,remainder != 0 ? remainder : 4),'');
    
	for(var i = 0; i < password.length; i++){
		password = password.replace(password.substr(i,1),'');
	}
    for(var i = 2; i < password.length;i+=3){
        password = password.insert(i," ");
    }
    
	return password; 
}


Единственная загвоздка в том, что я не знаю каким образом переписать этот кусок кода:
while (ss >> std::hex >> temporary)
                password += temporary;


Буду очень признателен, если кто-нибудь объяснит, что делает ss >> std::hex >> temporary и как все это дело написать на JavaScript'е.
  • Вопрос задан
  • 2317 просмотров
Решения вопроса 1
Буду очень признателен, если кто-нибудь объяснит, что делает ss >> std::hex >> temporary и как все это дело написать на JavaScript'е.


Конвертирует строковое шестнадцатеричное значение в целое со знаком. Ответ находится в первой же ссылке выдачи по запросу «ss >> std::hex». В JS для этого используется parseInt(string, 16).
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы