从两个列表中列出一个列表

时间:2014-11-05 13:50:23

标签: javascript angularjs

我有两个包含相同元素的列表以及不同的元素。如何从这两个列表中制作一个列表,让我产生共性和新项目。?

...
            <list-of-items items="application.units"
                           label="$item.name"
                           selected-item="unit"
                           selectable="true"
                           onedit="on_edit_unit($item)"
                           editable="false"
                           size="small">
            </list-of-items>
            <list-of-items items="applicationCible.units"
                           label="$item.name"
                           selected-item="unit"
                           selectable="true"
                           onedit="on_edit_unit($item)"
                           editable="false"
                           size="small">
            </list-of-items>
...

更新:

在我的HTML中:

..
          <list-of-items items="platforms.concat(platformsCible).unique()"
                           label="$item"
                           selected-item="platform"
                           createfunction="add_platform($name)"
                           selectable="true"
                           editable="false"
                           size="small">
            </list-of-items>
..

在我的JS中

propertiesModule.controller('PropertiesCtrl', ['$scope', '$routeParams', 'PropertiesService', 'ApplicationService', 'PlatformService', 'Page',  function ($scope, $routeParams, PropertiesService, ApplicationService, PlatformService, Page) {

...

Array.prototype.unique = function() {
    var a = this.concat();
    for(var i=0; i<a.length; ++i) {
        for(var j=i+1; j<a.length; ++j) {
            if(a[i] === a[j])
                a.splice(j--, 1);
        }
    }

    return a;
};

}]);

此方法有重复的项目

THX。

1 个答案:

答案 0 :(得分:1)

执行此操作的一种方法是使用Array.prototype.concat()连接两个列表:

<list-of-items items="application.units.concat(applicationCible.units)"
               label="$item.name"
               selected-item="unit"
               selectable="true"
               onedit="on_edit_unit($item)"
               editable="false"
               size="small">
</list-of-items>