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;
}
Sign up to request clarification or add additional context in comments.

2 Comments

or if you just want id and name form data use this array.push({ id: $scope.data[j].id, name: $scope.data[j].name });
@JAG Take a look at my solution

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.