2016-01-29 70 views
-1

我想列出我的項目按類別,所以我想要顯示的是這樣的。在多維數組中按類別列出項目 - jQuery的

A類

項目1

項目2

B類

項目1

項目3

項目4

C類

項目3

項目4

這是數組我有,我應該如何打印我的類別,列出下的項目? $scope.categoryArray = [ {name:"Item 1", on: false, subcategory:"Category A"}, {name:"Item 2", on: false, subcategory:"Category A"}, {name:"Item 1", on:false, subcategory:"Category B"}, {name:"Item 3", on: false, subcategory:"Category B"}, {name:"Item 4", on: false, subcategory:"Category B"}, {name:"Item 3", on: false, subcategory:"Category C"}, {name:"Item 4", on: false, subcategory:"Category C"}];

在此先感謝您的意見!

回答

0

這將做到這一點:

var app = angular.module("app", []); 
 
app.controller("c", function($scope) { 
 
    $scope.categoryArray = [{ 
 
    name: "Item 1", 
 
    on: false, 
 
    subcategory: "Category A" 
 
    }, { 
 
    name: "Item 2", 
 
    on: false, 
 
    subcategory: "Category A" 
 
    }, { 
 
    name: "Item 1", 
 
    on: false, 
 
    subcategory: "Category B" 
 
    }, { 
 
    name: "Item 3", 
 
    on: false, 
 
    subcategory: "Category B" 
 
    }, { 
 
    name: "Item 4", 
 
    on: false, 
 
    subcategory: "Category B" 
 
    }, { 
 
    name: "Item 3", 
 
    on: false, 
 
    subcategory: "Category C" 
 
    }, { 
 
    name: "Item 4", 
 
    on: false, 
 
    subcategory: "Category C" 
 
    }]; 
 
    $scope.array = []; 
 

 
    for (var item in $scope.categoryArray) { 
 
    var obj = $scope.array[$scope.categoryArray[item].subcategory]; 
 
    if (!obj) 
 
     $scope.array[$scope.categoryArray[item].subcategory] = []; 
 
    $scope.array[$scope.categoryArray[item].subcategory].push($scope.categoryArray[item].name); 
 

 
    } 
 
    var str = ""; 
 
    for (var cat in $scope.array) { 
 
    str += cat + "</br>"; 
 
    for (var item in $scope.array[cat]) { 
 
     str += $scope.array[cat][item] + "</br>"; 
 
    } 
 
    } 
 
    $("#content").html(str); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="app" ng-controller="c" id="content"></div>

+0

這是偉大的。感謝你的回答。 – missgg