1

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"} ] } 

    1 Answer 1

    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; } 
    2
    • or if you just want id and name form data use this array.push({ id: $scope.data[j].id, name: $scope.data[j].name });
      – Ja9ad335h
      CommentedMay 5, 2015 at 18:36
    • @JAG Take a look at my solutionCommentedMay 5, 2015 at 18:40

    Start asking to get answers

    Find the answer to your question by asking.

    Ask question

    Explore related questions

    See similar questions with these tags.