2016-06-15 42 views
0

我有一个JSON文件,如下独特的属性计数JSON

{"Teams": [ 
{"id":"1","f1":"Currency","f2":"All","f3":"May-2016","color":"G"}, 
{"id":"1","f1":"Currency","f2":"All","f3":"Aug-2016","color":"R"}, 
{"id":"1","f1":"Currency","f2":"All","f3":"Jun-2016","color":"R"}, 
{"id":"1","f1":"Currency","f2":"All","f3":"May-2016","color":"G"}, 
{"id":"1","f1":"Currency","f2":"All","f3":"May-2016","color":"G"}, 
{"id":"1","f1":"Currency","f2":"All","f3":"Jun-2016","color":"G"}, 
{"id":"1","f1":"Currency","f2":"All","f3":"Jun-2016","color":"G"}, 
{"id":"1","f1":"Currency","f2":"All","f3":"Aug-2016","color":"R"}, 
{"id":"1","f1":"Currency","f2":"All","f3":"May-2016","color":"G"}, 
{"id":"1","f1":"Currency","f2":"All","f3":"Jun-2016","color":"G"}, 
{"id":"1","f1":"Currency","f2":"All","f3":"May-2016","color":"G"}, 
]} 

最新最好的方法来提取F3特有的属性值。

在这里,在我们的例子中,我应该存储在一个数组,它是唯一的F3属性阵列应该有["Jun-2016","May-2016","Aug-2016"]

回答

1

使用Array#reduce方法

var data= {"Teams": [ 
 
{"id":"1","f1":"Currency","f2":"All","f3":"May-2016","color":"G"}, 
 
{"id":"1","f1":"Currency","f2":"All","f3":"Aug-2016","color":"R"}, 
 
{"id":"1","f1":"Currency","f2":"All","f3":"Jun-2016","color":"R"}, 
 
{"id":"1","f1":"Currency","f2":"All","f3":"May-2016","color":"G"}, 
 
{"id":"1","f1":"Currency","f2":"All","f3":"May-2016","color":"G"}, 
 
{"id":"1","f1":"Currency","f2":"All","f3":"Jun-2016","color":"G"}, 
 
{"id":"1","f1":"Currency","f2":"All","f3":"Jun-2016","color":"G"}, 
 
{"id":"1","f1":"Currency","f2":"All","f3":"Aug-2016","color":"R"}, 
 
{"id":"1","f1":"Currency","f2":"All","f3":"May-2016","color":"G"}, 
 
{"id":"1","f1":"Currency","f2":"All","f3":"Jun-2016","color":"G"}, 
 
{"id":"1","f1":"Currency","f2":"All","f3":"May-2016","color":"G"}, 
 
]}; 
 

 
var res = data.Teams.reduce(function(arr, ele) { 
 
    // check element already exist if not push the value to the array 
 
    if (arr.indexOf(ele.f3) === -1) arr.push(ele.f3); 
 
    return arr; 
 
    // set initial value as empty array 
 
}, []); 
 

 
console.log(res);

+0

您可以更改代码,以推动数据JSON数组,而不是数组的结果应该在下面格式{“f3”:“2016年8月”,“f3”:“2016年5月”,“f3”:“2016年6月”}? – user3349850

+0

@ user3349850:Json数组? 'JSON.stringify(rs)' –

+0

@ user3349850:'{“f3”:“Aug-2016”,“f3”:“May-2016”,“f3”:“Jun-2016”} == {“f3” :“2016年6月”}',但这个可能是'[{“f3”:“Aug-2016”},{“f3”:“2016年5月”},{“f3”:“ }]' –

0

var arrnew = [] 
 

 

 
var data = { 
 
    "Teams": [{ 
 
    "id": "1", 
 
    "f1": "Currency", 
 
    "f2": "All", 
 
    "f3": "May-2016", 
 
    "color": "G" 
 
    }, { 
 
    "id": "1", 
 
    "f1": "Currency", 
 
    "f2": "All", 
 
    "f3": "Aug-2016", 
 
    "color": "R" 
 
    }, { 
 
    "id": "1", 
 
    "f1": "Currency", 
 
    "f2": "All", 
 
    "f3": "Jun-2016", 
 
    "color": "R" 
 
    }, { 
 
    "id": "1", 
 
    "f1": "Currency", 
 
    "f2": "All", 
 
    "f3": "May-2016", 
 
    "color": "G" 
 
    }, { 
 
    "id": "1", 
 
    "f1": "Currency", 
 
    "f2": "All", 
 
    "f3": "May-2016", 
 
    "color": "G" 
 
    }, { 
 
    "id": "1", 
 
    "f1": "Currency", 
 
    "f2": "All", 
 
    "f3": "Jun-2016", 
 
    "color": "G" 
 
    }, { 
 
    "id": "1", 
 
    "f1": "Currency", 
 
    "f2": "All", 
 
    "f3": "Jun-2016", 
 
    "color": "G" 
 
    }, { 
 
    "id": "1", 
 
    "f1": "Currency", 
 
    "f2": "All", 
 
    "f3": "Aug-2016", 
 
    "color": "R" 
 
    }, { 
 
    "id": "1", 
 
    "f1": "Currency", 
 
    "f2": "All", 
 
    "f3": "May-2016", 
 
    "color": "G" 
 
    }, { 
 
    "id": "1", 
 
    "f1": "Currency", 
 
    "f2": "All", 
 
    "f3": "Jun-2016", 
 
    "color": "G" 
 
    }, { 
 
    "id": "1", 
 
    "f1": "Currency", 
 
    "f2": "All", 
 
    "f3": "May-2016", 
 
    "color": "G" 
 
    }, ] 
 
} 
 

 

 

 
$.each(data.Teams, function(i, v) { 
 
    
 
    if ($.inArray(v.f3, arrnew) == -1) { 
 
    arrnew.push(v.f3); 
 
    }; 
 

 
}) 
 

 
console.log(arrnew)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

  1. 迭代数据
  2. 创建新的阵列和检查如果数值存在于数组中,如果不是推数值
0

您可以使用forEach & indexOf方法来寻找独特的F3值

var x= {"Teams": [ 
{"id":"1","f1":"Currency","f2":"All","f3":"May-2016","color":"G"}, 
{"id":"1","f1":"Currency","f2":"All","f3":"Aug-2016","color":"R"}, 
{"id":"1","f1":"Currency","f2":"All","f3":"Jun-2016","color":"R"}, 
{"id":"1","f1":"Currency","f2":"All","f3":"May-2016","color":"G"}, 
{"id":"1","f1":"Currency","f2":"All","f3":"May-2016","color":"G"}, 
{"id":"1","f1":"Currency","f2":"All","f3":"Jun-2016","color":"G"}, 
{"id":"1","f1":"Currency","f2":"All","f3":"Jun-2016","color":"G"}, 
{"id":"1","f1":"Currency","f2":"All","f3":"Aug-2016","color":"R"}, 
{"id":"1","f1":"Currency","f2":"All","f3":"May-2016","color":"G"}, 
{"id":"1","f1":"Currency","f2":"All","f3":"Jun-2016","color":"G"}, 
{"id":"1","f1":"Currency","f2":"All","f3":"May-2016","color":"G"}, 
]} 
var _m =(x.Teams); 
var uniquef3 = []; 
_m.forEach(function(item){ 
if(uniquef3.indexOf(item.f3) ==-1){ 
    uniquef3.push(item.f3) 
} 

}) 
console.log(uniquef3) 

JSFIDDLE

0

试试这个

var x ={"Teams": [ 
{"id":"1","f1":"Currency","f2":"All","f3":"May-2016","color":"G"}, 
{"id":"1","f1":"Currency","f2":"All","f3":"Aug-2016","color":"R"}, 
{"id":"1","f1":"Currency","f2":"All","f3":"Jun-2016","color":"R"}, 
{"id":"1","f1":"Currency","f2":"All","f3":"May-2016","color":"G"}, 
{"id":"1","f1":"Currency","f2":"All","f3":"May-2016","color":"G"}, 
{"id":"1","f1":"Currency","f2":"All","f3":"Jun-2016","color":"G"}, 
{"id":"1","f1":"Currency","f2":"All","f3":"Jun-2016","color":"G"}, 
{"id":"1","f1":"Currency","f2":"All","f3":"Aug-2016","color":"R"}, 
{"id":"1","f1":"Currency","f2":"All","f3":"May-2016","color":"G"}, 
{"id":"1","f1":"Currency","f2":"All","f3":"Jun-2016","color":"G"}, 
{"id":"1","f1":"Currency","f2":"All","f3":"May-2016","color":"G"}, 
]} 

newaArr =[] 

angular.forEach(x.Teams,function(val,index){ 
if(newaArr.indexOf(val.f3) ==-1){ 
newaArr.push(val.f3) 
} 

}) 
0

可以做到这一点是一些优化的方式。您可以缓存f3的唯一值。下次只需使用javascript的hasOwnProperty检查它们的存在。这会降低搜索存在的复杂性。

var Teams = [ 
{"id":"1","f1":"Currency","f2":"All","f3":"May-2016","color":"G"}, 
{"id":"1","f1":"Currency","f2":"All","f3":"Aug-2016","color":"R"}, 
{"id":"1","f1":"Currency","f2":"All","f3":"Jun-2016","color":"R"}, 
{"id":"1","f1":"Currency","f2":"All","f3":"May-2016","color":"G"}, 
{"id":"1","f1":"Currency","f2":"All","f3":"May-2016","color":"G"}, 
{"id":"1","f1":"Currency","f2":"All","f3":"Jun-2016","color":"G"}, 
{"id":"1","f1":"Currency","f2":"All","f3":"Jun-2016","color":"G"}, 
{"id":"1","f1":"Currency","f2":"All","f3":"Aug-2016","color":"R"}, 
{"id":"1","f1":"Currency","f2":"All","f3":"May-2016","color":"G"}, 
{"id":"1","f1":"Currency","f2":"All","f3":"Jun-2016","color":"G"}, 
{"id":"1","f1":"Currency","f2":"All","f3":"May-2016","color":"G"}, 
]; 

var output=[]; 
var cache = {}; 

for(var i in Teams) { 
    if(!cache.hasOwnProperty(Teams[i].f3)) { 
    cache[Teams[i].f3] = null; 
    } 
} 
for(var key in cache) { 
    output.push(key); 
} 
console.log(output); 
0

你可以这样说:

var unique={} 
var kt= {"Teams": [ 
{"id":"1","f1":"Currency","f2":"All","f3":"May-2016","color":"G"}, 
{"id":"1","f1":"Currency","f2":"All","f3":"Aug-2016","color":"R"}, 
{"id":"1","f1":"Currency","f2":"All","f3":"Jun-2016","color":"R"}, 
{"id":"1","f1":"Currency","f2":"All","f3":"May-2016","color":"G"}, 
{"id":"1","f1":"Currency","f2":"All","f3":"May-2016","color":"G"}, 
{"id":"1","f1":"Currency","f2":"All","f3":"Jun-2016","color":"G"}, 
{"id":"1","f1":"Currency","f2":"All","f3":"Jun-2016","color":"G"}, 
{"id":"1","f1":"Currency","f2":"All","f3":"Aug-2016","color":"R"}, 
{"id":"1","f1":"Currency","f2":"All","f3":"May-2016","color":"G"}, 
{"id":"1","f1":"Currency","f2":"All","f3":"Jun-2016","color":"G"}, 
{"id":"1","f1":"Currency","f2":"All","f3":"May-2016","color":"G"}, 
]}; 

kt.Teams.forEach(function(value){unique[value.f3]=0;}); 
console.log(Object.keys(unique)); 

希望这将有助于