2017-11-18 84 views
0

我已经创建了angularjs应用程序,我在其中创建了问题模块,其中问题1-5具有相同的描述,然后问题6-7具有相同的描述,因此我将相同的描述保存到每个问题并显示他们在下一个按钮上逐一使用。现在的功能变化我想显示一个页面上,所以我使用了NG-重复现在的问题是问题描述也重复同样如此描述显示了每1-5题我JSON就像从对象数组中删除重复的值

[ { 
    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个问题,但没有说明 所以任何人都有建议我该怎么做? thanx in advanced。

+0

'我的JSON是like' - 如果这是JSON,它是无效的 –

+0

向我们展示你的HTML代码,更具体的' ng-repeat'你在说 –

回答

0

如果可能的话,我会将您的JSON对象属性“question1”,“question2”等重命名为“question”,否则您基本上遍历不同对象的数组,这会让事情变得更加困难。

<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

我的情景就像1-5一样的描述,然后6-7有同样的描述,所以从{{questions [0] .description}}只显示第一个描述 – kalpeshR

+0

@kalpeshR我已经更新了我的答案,说明只会显示第1和第6个问题 –

+0

我刚刚给出的例子有一些问题没有说明n就像第一个问题没有描述那么2-4之后有说明然后5-6没有再说明然后7有说明么?说明的顺序不固定它可以是任何地方 – kalpeshR

0

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

这个例子第一个合适的值取。您可以修改条件找到全部或部分uniq的对象

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

thanx的答案,但这删除其他问题,我想所有的问题,除了重复的描述 – kalpeshR

+0

你可以打印输入数据和预期输出的例子吗? –