2017-11-18 1 views
0

나는 question-1-5가 동일한 설명을 가지고있는 quiz 모듈을 만든 angularjs 응용 프로그램을 만들었습니다. 질문 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의 질문은 설명없이 계속 남겨 둡니다. 누구나 제안 사항이 있습니다. 어떻게해야합니까? 고맙습니다.

+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 내 대답을 업데이트, 설명은 첫 번째와 여섯 번째 질문에 대해서만 표시됩니다 –

+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

고맙습니다. 다른 질문은 제외합니다. 중복 된 설명을 제외한 모든 질문을 원합니다. – kalpeshR

+0

입력 데이터 및 예상 결과의 예를 인쇄 할 수 있습니까? –