2015-02-24 31 views
-1

有沒有更有效的書寫方式?更有效的書寫方式

我嘗試歸檔一個terser代碼。喜歡的東西:

值:{Angebotsmappen,Angebotsordner,Abheftmappen,Außendienstmappen...},

$(function(){ 
    var tags = [ 
    { value: 'Angebotsmappen' }, 
    { value: 'Angebotsordner' }, 
    { value: 'Abheftmappen' }, 
    { value: 'Außendienstmappen' }, 
    { value: 'Firmenmappen' }, 
    { value: 'Flipcharts' }, 
    { value: 'Grafikmappen' }, 
    { value: 'Geschenkschachteln' }, 
    { value: 'Hotelmappen' }, 
    { value: 'Infomappen' }, 
    { value: 'Konferenzmappen' }, 
    { value: 'Klemmbretter' }, 
    { value: 'Klemmmappen' } 
    ]; 



    $('#autocomplete').autocomplete({ 
    lookup: tags, 
    width: "auto", 
    onSelect: function (suggestion) { 
    document.location.href = "https://stackoverflow.com/search?q=" + $(this).val() 
    } 
    }); 

});

+0

什麼是你想acheive? – Satpal 2015-02-24 14:27:29

+1

鑑於該功能沒有目的,你期望優化什麼? – 2015-02-24 14:28:51

+0

我會將您重定向到codereview堆棧交換。這是獲得您似乎在尋找的反饋的好地方。 – thomasb 2015-02-24 14:30:21

回答

0
var names = ['Angebotsmappen', 'Angebotsordner', 'Abheftmappen', 'Außendienstmappen']; //until whatever 
var tags = []; 

for(var i = 0; i < tags.length; i++){ 
    tags.push({'value': tags[i]}); 
} 

只需創建一個名稱數組,然後使用循環來創建鍵/值對。

如果您熟悉函數式編程(maps),這是更短:

['Angebotsmappen', 
'Angebotsordner', 
'Abheftmappen', 
'Außendienstmappen'].map(function(i){return {value: i}}); 
+0

不確定使用兩個變量而不是一個,並使用循環是真的更有效... – 2015-02-24 14:39:48

+0

@RobinLeboeuf這絕對是terser(OP想要) – Secret 2015-02-24 14:52:16

+0

帖子被編輯,OP沒有在原始帖子中談論terser :) – 2015-02-24 15:40:17