Angular unique select
HTML
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.6/angular.min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/angular-ui/0.4.0/angular-ui.min.js"></script>
<div ng-controller="myAppList">
<select name="clienT" ng-model="clientW" ng-options="letter as letter for (letter, opts) in levels"></select>
<select name="projecT" ng-model="clientX" ng-options="letter as letter for (letter, opts) in levels[clientW]"></select>
<select name="platforM" ng-model="clientZ" ng-options="letter as letter for letter in levels[clientW][clientX]"></select>
</div>
JavaScript
var myApp = angular.module('myApp', ['ui.directives','ui.filters']);
myApp.controller('myAppList', function myAppList($scope) {
var myArr = ["a_b_c","a_b_d","a_e_g","f_t_r","f_t_g","f_u_m"];
var levels = {};
myArr.forEach(function(arr) {
var split = arr.split("_");
if (!levels[split[0]])
levels[split[0]] = {};
if (!levels[split[0]][split[1]])
levels[split[0]][split[1]] = []
if (levels[split[0]][split[1]].indexOf(split[2]) === -1)
levels[split[0]][split[1]].push(split[2])
})
$scope.levels = levels;
console.log(levels["f"]["t"])
});