2016-10-02 66 views
1

我正在尝试生成<select>子类的下拉列表以创建过滤器。当列表生成时,我得到重复和字符串。我如何拆分字符串,然后删除重复项?删除下拉列表中的重复项

实例 - 这是我目前得到

<select data-filter="" class="form-control" name="subClassifications"> 
    <option value="all">Select sub-classification</option> 
     <option value="Audit">Audit</option> 
     <option value="Assurance,Accounting,Audit">Assurance,Accounting,Audit</option> 
</select> 

路径:helper.js

subClassificationsFilter() { 
    let subClassifications = ProfessionalOverview.find({}, { fields: { subclassification: 1 } }); 

    if (subClassifications) { 
    return _.uniq(subClassifications.map((subClassification) => { 
     return subClassification.subclassification; 
    }), true); 
    } 
}, 
+0

我已经列出了上面加上,我试过添加像'.split变量'的东西,但是这似乎创建数组。对于我如何将所有子类分组在一起,我将它们分开,然后删除重复项,我有点难住。 – bp123

回答

0
subClassificationsFilter() { 
     let subClassifications = ProfessionalOverview.find({}, { fields: { subclassification: 1 } }).fetch(); 
     let subClassification = _.map(subClassifications, function(obj) { 
      return obj.subclassification; 
     }); 

     let groupSubClassification = _.flatten(subClassification); 

     return _.uniq(groupSubClassification).sort(); 
    } 
3

创建一个列表,删除重复

unorderedList = Object.keys(myObject).map(function(key){ 
    return {label: key, value: myObject[key]} 
}); 

然后责令无序列表

const orderedList = {}; 
Object.keys(unorderedList).sort().forEach(function(key) { 
    orderedList[key] = unorderedList[key]; 
}); 

使用有序列表创建您的下拉列表。

+0

感谢布鲁诺,这将运作良好,但我能够使用下划线。谢谢你的建议。 – bp123