我有一个包含JSON数组中多个元素的数组,
我可以通过执行category.language
来访问(JSON中还有一些其他元素可以访问,例如执行category.name
,category.photo
等)
English, Russian, French, Russian, English
我想要做的是将重复项彼此放在一起并最终得到:
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
玩游戏应该可以解决问题!我希望你能提出一些想法来解决它!
答案 0 :(得分:1)
我不清楚你究竟在问什么,但你可以使用ES6套装来确保每个条目的唯一性。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set
答案 1 :(得分: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对象将具有以每种语言命名的属性:
pages = {
English:[
{language:'English',name:'...',photo:'...'},
{language:'English',name:'...',photo:'...'}
],
Russian:[
{language:'Russian',name:'...',photo:'...'},
{language:'Russian',name:'...',photo:'...'}
]
}