2015-02-24 28 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