首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从对象数组中删除重复值

从对象数组中删除重复值
EN

Stack Overflow用户
提问于 2017-11-18 19:20:48
回答 2查看 50关注 0票数 0

我已经创建了angularjs应用程序,其中我已经制作了测验模块,其中问题1-5具有相同的描述,然后问题6-7具有相同的描述,因此我将相同的描述保存到每个问题,并在下一步按钮上使用逐个显示它们。现在的功能是我想要在单个页面上显示的更改,所以我使用了ng-repeat,现在的问题是问题描述也在重复,所以我的JSON每1-5个问题都会显示相同的描述

代码语言:javascript
复制
[ { 
  description:'xxxxxx',
  question:'abcd',
  correctAnswer:'A',
  hasSameDesc:true
},
{ 
  description:'xxxxxx',
  question:'pqr',
  correctAnswer:'B'
  hasSameDesc:true
},
{ 
  description:'xxxxxx',
  question:'XYZQ',
  correctAnswer:'A'
  hasSameDesc:true
}] and so on

现在我想在上面的第一个问题上显示一次描述,并保留问题2-5仍然没有描述,所以任何人都有建议我该怎么做?在进阶阶段谢谢。

EN

回答 2

Stack Overflow用户

发布于 2017-11-18 19:28:49

如果可能,我会将您的JSON对象属性重命名为"question1“、"question2”等。为了“质疑”,否则你实际上是在迭代一个由不同对象组成的数组,这只会让事情变得更加困难。

代码语言:javascript
复制
<div ng-repeat="question in questions track by $index">
  <h1 ng-if="$index == 0 || $index == 5"> {{question.description}} </h1>
  <span>{{question.question}}</span>
</div>

这接近你的意思了吗?基本上,使用ng-repeat,您可以选择要显示的迭代对象的属性。

票数 0
EN

Stack Overflow用户

发布于 2017-11-18 19:44:44

在显示数组之前过滤数组是很好的。

它是这个例子的第一个适当的值。您可以修改条件以查找全部或部分uniq对象

代码语言:javascript
复制
let data = [ { 
  description:'xxxxxx',
  question1:'abcd',
  correctAnswer:'A',
  hasSameDesc:true
},
{ 
  description:'xxxxxx',
  question2:'pqr',
  correctAnswer:'B',
  hasSameDesc:true
},
{ 
  description:'xxxxxx',
  question3:'XYZQ',
  correctAnswer:'A',
  hasSameDesc:true
},
{ 
  description:'yyyyy',
  question3:'XYZQ',
  correctAnswer:'A',
  hasSameDesc:true
}];

let uniq = data.filter((elem, index, self) => {
  return index == self.findIndex(e => elem.description == e.description)
})

console.log(uniq)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47365440

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档