2013-05-15 2 views
0
var str = 'Hello World' 
var replacements = {0: '4', 6: '77'}; 
magicalReplace(str, replacements); 
// result: 4ello 77orld 

Помогите мне написать эту функцию, которая поможет решить проблему? Самое главное - заменить его в тот же момент, потому что замена может быть длиннее одиночного символа.Заменить конкретные символы в строке в тот же момент

+2

Нет необходимости «в то же время», - сортирует изменения по порядку позиции по убыванию ('6', затем' 0' в вашем примере), затем внесите изменения в этом порядке. – RichieHindle

ответ

2

Этот фрагмент кода должен делать эту работу, а также учет несортированными ключей:

String.prototype.magicalReplace = function(replacements) { 
    var chars = this.split(""); 
    for(var key in replacements) { 
     if(replacements.hasOwnProperty(key)) { 
      chars[key] = replacements[key]; 
     } 
    } 

    return chars.join(""); 
} 

Работа демо: http://jsfiddle.net/HdCFj/

Смежные вопросы