Argumenty są całkowicie zbędne w tym przykładzie. W JS, mamy prostą konkatenacji ciąg, który obsługuje również numery pomiędzy, więc można to osiągnąć za pomocą prostego
var str = 'Number' + ' ' + 12
Jeśli naprawdę chcesz argumenty nie dosłownych strun, można po prostu zastąpić %1
z wymianą . QString::arg
(z jednym argumentem) nie jest niczym więcej niż:
function stringArg(str, arg)
{
for(var i = 1; i <= 9; ++i)
if(str.indexOf('%'+i) !== -1)
return str.replace('%'+i, arg);
return str;
}
Więc twój kod staje:
var str = "%1 %2"
str = stringArg(str, "Number")
str = stringArg(str, 12)
(Zauważ, że funkcja ta może obsłużyć tylko %1
.. %9
, natomiast QString::arg
może obsłużyć To wymaga nieco więcej logiki, ponieważ %10
jest podszyty jako %1
w moim kodzie, więc nie jest to dokładnie to samo co QString::arg
, ale w większości przypadków będzie wystarczające. Możesz również napisać stringArg
funkcja biorąca wiele argumentów zastępujących, ale dla uproszczenia właśnie napisałem tę tutaj.)
Czy występują jakieś problemy z wydajnością? –