2015-10-09 46 views
-1

這是我在上面的代碼代碼如何在angularjs中將對象推送到數組?

$scope.studentDetails=[]; 

    $scope.studentIds={}; 
    $scope.studentIds[0]{"id":"101"} 
    $scope.studentIds[1]{"id":"102"} 
    $scope.studentIds[2]{"id":"103"} 

當我選擇學生id:101我有痕從服務,如

$scope.studentMarks={}; 
    $scope.studentMarks[0]{"marks":"67"} 
    $scope.studentMarks[1]{"marks":"34"} 
未來

我選擇學生id:102我有痕從服務,如

$scope.studentMarks={}; 
    $scope.studentMarks[0]{"marks":"98"} 
    $scope.studentMarks[1]{"marks":"85"} 

終於我想將學生的詳細信息存儲到一個數組中,如

$scope.studentDetails=[{"id":"101","marks":[67,34]},{"id":"102","marks":[98,85]}] 

使用angularjs。

+1

它不是真正清楚你在這裏幹什麼,甚至你的問題是什麼。你展示了一些正在創建的對象,然後像它們是數組一樣引用它們,然後顯示一個數組,你似乎希望成爲其中一個對象的產品加上另一個對象的數組表示。你的語法在這裏完全不起作用。 – Claies

回答

3

看起來似乎比角度更多的是JS問題。

Javascript推送法呢?

$scope.studentDetails.push({id: 101, marks: [67, 34]}); 
+0

但第二次當我選擇ID = 102我得到了分數,然後那些學生的分數也推到相同的陣列 –

+0

對不起,我不太確定我明白。 '$ scope.studentDetails [0] .marks.push(74);' 這可能有用嗎? – jamesmpw

+0

你如何選擇id = 102?您是否嘗試將學生ID用作索引。如:$ scope.studentDetails [102]? –

1

您可以使用Array.push將一個對象或concat添加到concat數組到另一個數組中。請參閱參考資料。

1

angularJS只是一個擴展Javascript的庫。您可以像使用Javascript中的任何對象一樣將數組推入數組中。

首先,你需要聲明一個數組。

$scope.studentIds = []; // Array of student ids. 

然後,當你想添加,你推:

$scope.studentIds.push({id: "101"}); 
0

要做到這一點天真你通過學生ID,然後遍歷標記對象需要循環並將其添加到您的studentDetails對象如果ID匹配:

var studentDetails = []; 

for (var id in studentIds) { 
    var studentDetail = {}; // this will be a single student 
    var marks = [];  

    if (studentIds.hasOwnProperty(id)) { 
     for (var mark in studentMarks) { 
      if (studentMarks.hasOwnProperty(mark) && mark.id === id) { 
       studentDetail.id = id; 
       marks.push(mark.marks); 
      } 
     } 
     studentDetail.marks = marks; 
    } 
    studentDetails.push(studentDetail); 
} 

$scope.studentDetails = studentDetails; 
相關問題