2016-05-02 11 views
0

私は、JSON配列の複数の要素を含む1つの配列を持っています category.languageを実行するとアクセスできます(JSONにアクセス可能な他の要素はほとんどありません) )category.namecategory.photoなどをやっ例えばAngular2/Ionic - 配列内の重複アイテムを見つけて整理する

English, Russian, French, Russian, English 

私は何をしたいことは、互いとエンドアップが持つ重複を置くことです:duplicを削除せずに

English, Russian, French 

を他の異なる値を持つcategory.name ...のような他の関連する要素も削除されます。

現在、私は、フォームのREST APIを取得しています、次は私のコードです:

Page.js

this.menuPages = { 
      pagination: '.swiper-pagination', 
      //need to have 1 or more (it should some how dynamic depending on the number of the unique items, i.e. sometimes should 1 slide per view, sometimes 10 slides per view) 
      slidesPerView: '1', 
      paginationClickable: true, 
      paginationBulletRender: function (index, className) { 
      console.log('print now2 : '+storeCategory[index]); 
      return '<span class="' + className + '">' + storeCategory[index] + '</span>'; 
      } 
     } 

Page.html

<ion-slides pager [options]="Pages"> 
      <ion-slide *ngFor="#category of categories"> 
    //put the duplicates with each other, to have one element or more in every slide(page) 
      <ion-row> 
      <ion-col> 
      <div class="title">{{category.name}</div> 
      <div class="subTitle"><br>{{category.photo}}</div> 
      </ion-col> 
      </ion-row> 
      </ion-slide> 
    </ion-slides> 

私はどちらかの周りpage.htmlで遊んで信じていますまたはpage.jsで問題を解決する必要があります。私はあなたがそれを解決するためのいくつかのアイデアを提案できることを願っています

答えて

1

私は、私はあなたが求めているものを得るが、ここで私が理解した内容に基づいていくつかのコードがあることを確認していない:

var pages = {}; // create object to hold the collections 
categories.map(cat=>{ 
     if (!pages[cat.language]) 
      pages[cat.language]=[]; // create a list for every language 
     return cat; 
    }) 
    .forEach(cat=>pages.push(cat)); // push every category to the related list 

ページオブジェクトのすべての言語として名前付きプロパティを持っています。

pages = { 
     English:[ 
      {language:'English',name:'...',photo:'...'}, 
      {language:'English',name:'...',photo:'...'} 
     ], 
     Russian:[ 
      {language:'Russian',name:'...',photo:'...'}, 
      {language:'Russian',name:'...',photo:'...'} 
     ] 
    }