Слияние двух строк key=value пар в JavaScript

Я пытаюсь придумать эффективный способ перезаписать 2 строки, которые похожи на это:

str1 = "width=800,height=600,resizable=no,titlebar=no";
str2 = "width=100,height=100";

В вышеупомянутом примере, str2 должен перезаписать str1 произвести str3:

str3 = "width=100,height=100,resizable=no,titlebar=no";

В моих тестах я повернулся str2 в массив и протестированный каждый ключ против соответствия в str1.

Может любой думать о более эффективном способе записать это:

str1 = "width=800,height=600,resizable=no,titlebar=no";
str2 = "width=100,height=100";
sArray = str2.split(",");

for( var i = 0; i < sArray.length; i++ ) {
    var key = sArray[i].match(/(\w+)=/gi).toString().replace("=", ""),
        in_str1 = str1.search(key),
        replace_pattern = new RegExp(key+"=(\\w+)", "gi");

    if(in_str1 !== -1){                 
        str1 = str1.replace(replace_pattern, sArray[i]);
    } else {
        str1 = str1 + "," + sArray[i];
    }
}
5
задан Andres 4 August 2010 в 17:47
поделиться