2017-03-27 57 views
0

以下是在記錄:每一個最後的兩個記錄比較納克重複內部

$scope.myArray = 
    [ 
    { 
     "id": 100, 
     "child": [ 
     { 
      "id": 77, 
      "part": 33, 
      "name" : 16 
      "subName": 16.1, 
     }, 
     { 
      "id": 76, 
      "part": 30, 
      "name" : 14, 
      "subName": 14.3, 
     }, 
     { 
     "id": 75, 
     "part": 29, 
     "name" : 12, 
     "subName": 12.1, 
     } 
     ] 
    } 
    ] 
在上面記載

現在,16.1屬於分開= 33和14.3屬於分開= 30,以便既SUBNAME屬於不同的部分所以我想顯示16名和14

以上記錄,以便預期輸出就像下面這我得到:

16 
14 
12 

問題是當我有如下記錄:

$scope.myArray = 
    [ 
    { 
     "id": 100, 
     "child": [ 
     { 
      "id": 76, 
      "part": 30, 
      "name" : 14, 
      "subName": 14.3, 
     }, 
     { 
      "id": 71, 
      "part": 30, 
      "name" : 14, 
      "subName": 14.2, 
     }, 
     { 
      "id": 70, 
      "part": 30, 
      "name" : 14, 
      "subName": 14.1, 
     } 
     ] 
    } 
    ] 

這裏的孩子包含所有子名稱的相同部分,即30所以現在我要顯示在這種情況下Subname.So預計產量將SUBNAME象下面這樣:

14.3 
14.2 
14.1 

記錄會從0比較 - 1,1 - 2,2 - 3但在這裏我沒有得到如何比較記錄,如果子數組包含兩個以上的記錄。

注意:如果兩個記錄中的任何一個包含不同的部分,我將不會在子數組中有重複部分。例如,我不會有像16.1,14.3,14.2那樣的Subname,因爲這裏我有屬於不同部分的16.1。但如果16.1不在那裏,那麼我可以有14.3,14.2這是相同的部分。

var app = angular.module('myApp', []); 
 
     app.controller('myCtrl', function ($scope) { 
 
      $scope.myArray = 
 
    [ 
 
    { 
 
     "id": 100, 
 
     "child": [ 
 
     { 
 
      "id": 77, 
 
      "part": 33, 
 
      "name" : 16, 
 
      "subName": 16.1, 
 
     }, 
 
     { 
 
      "id": 76, 
 
      "part": 30, 
 
      "name" : 14, 
 
      "subName": 14.3, 
 
     }, 
 
     { 
 
      "id": 75, 
 
      "part": 29, 
 
      "name" : 12, 
 
      "subName": 12.1, 
 
     } 
 
     ] 
 
    } 
 
    ] 
 
     });
<!DOCTYPE html> 
 
<html ng-app="myApp" ng-controller="myCtrl"> 
 
<head> 
 
    <title></title> 
 
    <meta charset="utf-8" /> 
 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script> 
 
</head> 
 
<body> 
 
    <div ng-repeat="item in myArray[0].child"> 
 
     {{ item.name }} 
 
    </div> 
 
</body> 
 
</html>

+0

讀你的第三次請求後,我不知道你在說什麼。 '在上面的記錄中,16.1屬於部分= 33,14.3屬於部分= 30'他們是如何屬於的?那是什麼意思? 16.1和33是同一個對象上的值。 '所以預期以上記錄的輸出就像下面我得到:16 14 12' 12從哪裏來? '記錄將比較從0 - 1,1 - 2,2 - 3'如何比較?你不會在你的整個問題中比較任何東西。長話短說,我們不在你的腦海。請解釋一下,就像你正在和一個從未看過你的代碼的人聊天。 – Thomas

+0

@Thomas:零件和子名稱之間有一對多的關係。例如,1個零件可以有多個子名稱。例如,零件30有三個子名稱 即14.3,14.2和14.1。零件33只有一個子名稱,即16.1。更新我的問題,包括12在我的input.I希望現在它對你有意義 –

回答

2

請參見下面的控制器代碼。我試圖實現你想要的。

$scope.myArray = [ { 
     "id" : 100, 
     "child" : [ { 
      "id" : 76, 
      "part" : 30, 
      "name" : 14, 
      "subName" : 14.3, 
     }, { 
      "id" : 71, 
      "part" : 30, 
      "name" : 14, 
      "subName" : 14.2, 
     }, { 
      "id" : 70, 
      "part" : 30, 
      "name" : 14, 
      "subName" : 14.1, 
     } ] 
    }, { 
     "id" : 101, 
     "child" : [ { 
      "id" : 77, 
      "part" : 33, 
      "name" : 16, 
      "subName" : 16.1, 
     }, { 
      "id" : 76, 
      "part" : 30, 
      "name" : 14, 
      "subName" : 14.3, 
     }, { 
      "id" : 75, 
      "part" : 29, 
      "name" : 12, 
      "subName" : 12.1, 
     } ] 
    } ] 

HTML代碼:

<div ng-repeat="item in myArray"> 
      ============<br /> 
      <div ng-repeat="item1 in item.child"> 
       <span>{{(item1.part==item.child[$index+1].part || 
        ($index==item.child.length-1 && 
        item1.part==item.child[$index-1].part))?item1.subName:item1.name}}</span> 
      </div> 
     </div> 

在這裏,我檢查,如果當前項目和未來項目的一部分是相同或不和,如果它是最後一個項目則當前項目和以往項目的部分相同或不是和基於我顯示subNamename。我希望這個解決方案能爲你工作。

更新時間:

var app = angular.module('myApp', []); 
 
    app.controller('myCtrl', function($scope) { 
 
     $scope.myArray = [{ 
 
      "id": 100, 
 
      "child": [{ 
 
       "id": 76, 
 
       "part": 30, 
 
       "name": 14, 
 
       "subName": 14.3, 
 
      }, { 
 
       "id": 71, 
 
       "part": 30, 
 
       "name": 14, 
 
       "subName": 14.2, 
 
      }, { 
 
       "id": 70, 
 
       "part": 30, 
 
       "name": 14, 
 
       "subName": 14.1, 
 
      }] 
 
     }, { 
 
      "id": 101, 
 
      "child": [{ 
 
       "id": 77, 
 
       "part": 33, 
 
       "name": 16, 
 
       "subName": 16.1, 
 
      }, { 
 
       "id": 76, 
 
       "part": 30, 
 
       "name": 14, 
 
       "subName": 14.3, 
 
      }, { 
 
       "id": 75, 
 
       "part": 29, 
 
       "name": 12, 
 
       "subName": 12.1, 
 
      }] 
 
     }] 
 
    });
<html ng-app="myApp" ng-controller="myCtrl"> 
 
    <head> 
 
     <title></title> 
 
     <meta charset="utf-8" /> 
 
     <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script> 
 
    </head> 
 
    <body> 
 
     <div ng-repeat="item in myArray"> 
 
     ============<br /> 
 
     <div ng-repeat="item1 in item.child"> 
 
      <span>{{(item1.part==item.child[$index+1].part || 
 
      ($index==item.child.length-1 && 
 
      item1.part==item.child[$index-1].part))?item1.subName:item1.name}}</span> 
 
     </div> 
 
     </div> 
 
    </body> 
 
</html>

+0

Upvoted爲您的善良努力,以幫助我。你能創建一個像我創建的方式一樣的可運行代碼,以便我可以運行它嗎? –

+0

嗨,我已經添加了可運行的代碼。如果它符合您的要求,請將其標記爲答案。 –

+0

好吧,這是工作Mansi.Thank你這麼多:) –