admin管理员组

文章数量:1323716

create a json array structure with key using angularjs. I don't have any idea to how to push data to create json array structure with key. I want to json array using below json data.

$scope.category = [{"id": 20, "name": "vegetable"},
    {"id": 30, "name": "fruits"}];

$scope.data = [
    { "id" : 1,"name" : "tomato", "categoryId" : 20},
    { "id" : 2,"name" : "potato", "categoryId" : 20},
    { "id" : 3,"name" : "orange", "categoryId" : 30},
    { "id" : 4,"name" : "apple", "categoryId" : 30},
    { "id" : 4,"name" : "onion", "categoryId" : 20}];

for(var i=0; i<$scope.category.length; i++) {
    for(var j=0; j<$scope.data.length; j++) {
        if($scope.category[i].id === $scope.data[j].categoryId) {

        }
    }
}

I want output like this:

  {
    "vegetable" : [
        { "id" : 1, "name" : "tomato"},
        { "id" : 2, "name" : "potato"},
        { "id" : 3, "name" : "onion"},
    ],
    "fruits" : [
        { "id" : 3, "name" : "orange"},
        { "id" : 4, "name" : "apple"}
    ]
 }

create a json array structure with key using angularjs. I don't have any idea to how to push data to create json array structure with key. I want to json array using below json data.

$scope.category = [{"id": 20, "name": "vegetable"},
    {"id": 30, "name": "fruits"}];

$scope.data = [
    { "id" : 1,"name" : "tomato", "categoryId" : 20},
    { "id" : 2,"name" : "potato", "categoryId" : 20},
    { "id" : 3,"name" : "orange", "categoryId" : 30},
    { "id" : 4,"name" : "apple", "categoryId" : 30},
    { "id" : 4,"name" : "onion", "categoryId" : 20}];

for(var i=0; i<$scope.category.length; i++) {
    for(var j=0; j<$scope.data.length; j++) {
        if($scope.category[i].id === $scope.data[j].categoryId) {

        }
    }
}

I want output like this:

  {
    "vegetable" : [
        { "id" : 1, "name" : "tomato"},
        { "id" : 2, "name" : "potato"},
        { "id" : 3, "name" : "onion"},
    ],
    "fruits" : [
        { "id" : 3, "name" : "orange"},
        { "id" : 4, "name" : "apple"}
    ]
 }
Share Improve this question asked May 5, 2015 at 18:24 Satheesh NatarajanSatheesh Natarajan 4592 gold badges8 silver badges32 bronze badges
Add a ment  | 

1 Answer 1

Reset to default 4

To get your desired format you need to categoryId from json before injecting it.

Code

$scope.myArray = [];
for(var i=0; i<$scope.category.length; i++) {
    var array = [];
    for(var j=0; j<$scope.data.length; j++) {
        if($scope.category[i].id === $scope.data[j].categoryId) {
            var index = array.push($scope.data[j]);
            delete array[index-1].categoryId;
        }
    }
    $scope.myArray[$scope.category[i].name] = array;
}

本文标签: javascriptcreate JSON array with key using AngularJSStack Overflow