Reputation: 459
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"}
]
}
Upvotes: 1
Views: 14894
Reputation: 136184
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;
}
Upvotes: 4