Учитывая строку 'Hello ?, welcome to ?' и массив ['foo', 'bar'], как мне получить строку 'Hello foo, welcome to bar' в одной строке кода с помощью JavaScript (возможно, с помощью jQuery, Underscore и т.
'Hello ?, welcome to ?'
['foo', 'bar']
'Hello foo, welcome to bar'
var s = 'Hello ?, welcome to ?'; var a = ['foo', 'bar']; var i = 0; alert(s.replace(/\?/g,function(){return a[i++]}));
Глупо ставить все это в одну строку, но:
var str = 'Hello ?, welcome to ?', arr = ['foo', 'bar'], i = 0; while(str.indexOf("?") >= 0) { str = str.replace("?", arr[i++]); }
Вы можете использовать vsprintf .Хотя, если вы включите sprintf, это будет больше, чем одна строка.
vsprintf('Hello %s, welcome to %s', [foo, bar]);