回答編集履歴
1
調整
    
        answer	
    CHANGED
    
    | @@ -1,16 +1,18 @@ | |
| 1 1 | 
             
            仕様によっては調整が必要かもしれませんが
         | 
| 2 2 | 
             
            とりあえずこんな感じです
         | 
| 3 3 |  | 
| 4 | 
            +
            ※items内の同じidのオブジェクトは除外するよう調整しました
         | 
| 4 5 | 
             
            ```javascript
         | 
| 6 | 
            +
            <script>
         | 
| 5 7 | 
             
            var itemList = [
         | 
| 6 | 
            -
              {id: 'p1',items: [{id: 1},{id: 2},{id: 3}]},
         | 
| 8 | 
            +
              {id: 'p1',items: [{id: 1},{id: 2},{id: 3},{id: 3}]},
         | 
| 7 9 | 
             
              {id: 'p2',items: [{id: 1},{id:10},{id:33}]},
         | 
| 8 10 | 
             
              {id: 'p3',items: [{id:11},{id:22},{id:33}]},
         | 
| 9 11 | 
             
              ];
         | 
| 10 12 | 
             
            var orderList = [
         | 
| 11 13 | 
             
              {id:'1',products: ['p1']},
         | 
| 12 | 
            -
              {id:'2',products: [' | 
| 14 | 
            +
              {id:'2',products: ['p2']},
         | 
| 13 | 
            -
              {id:'3',products: [' | 
| 15 | 
            +
              {id:'3',products: ['p2']},
         | 
| 14 16 | 
             
              {id:'4',products: []},
         | 
| 15 17 | 
             
              ];
         | 
| 16 18 |  | 
| @@ -28,6 +30,9 @@ | |
| 28 30 | 
             
                Array.prototype.push.apply(items,i.items);
         | 
| 29 31 | 
             
              }
         | 
| 30 32 | 
             
            });
         | 
| 33 | 
            +
             | 
| 34 | 
            +
            items=items.filter(function(i,j,k){
         | 
| 35 | 
            +
              return k.map(function(x){return x.id;}).indexOf(i.id)==j;
         | 
| 36 | 
            +
            });
         | 
| 31 37 | 
             
            console.log(items);
         | 
| 32 | 
            -
             | 
| 33 38 | 
             
            ```
         | 
