2013-05-15 86 views
0

其簡單的問題來自陣列創建特定格式字符串 - jQuery的

我有一個jQuery的arrary

arry = [ 'apple=1', 'apple=2', 'orange=5', 'orange=7', 'orange=9', 'guava=12', 'guava=11' ]; 

我想上面的數組轉換成字符串

str = 'apple=1*2*~orange=5*7*9~guava=12*11'; 

請幫我在這...

(其實我正在尋找各種有趣的方式來做到這一點)

+3

您是否自己嘗試過? – George

+0

是的,它按照期望的工作... – Sandesh

回答

3

有更直接的方式,如果你知道你要的是確切的輸出,但我會覺得最有用的第一重新排列陣列中的一個正確的字典:

var dict = {}; 
arry.forEach(function(item) { 
    var parts = item.split('='); 
    var key = parts[0]; 
    var value = parts[1]; 

    if(key in dict) { 
     dict[key].push(value); 
    } else { 
     dict[key] = [value]; 
    } 
}); 

...然後將字符串連接起來:

Object.keys(dict).map(function(key) { 
    return [key, '=', dict[key].join('*')].join(''); 
}).join('~'); 
+0

它的工作就像一個魅力,你回答如此之快...... – Sandesh