我只想从Array/ JSON中获得唯一的记录。
我的目标是这样的:
[
{
"name":"SAP R3 Vertriebskenntnisse",
"ontocat":"SAP_R3_Vertrieb"
},
{
"name":"Kenntnisse SAP-ISU",
"ontocat":"KenntnisseSAPISU"
},
{
"name":"Microsoft Office",
"ontocat":"MicrosoftOffice"
},
{
"name":"SAP",
"ontocat":"SAP"
},
{
"name":"SAP R3 Vertriebskenntnisse",
"ontocat":"SAP_R3_Vertrieb"
},
{
"name":"SAP",
"ontocat":"SAP"
},
{
"name":"SAP",
"ontocat":"SAP"
},
{
"name":"Kenntnisse SAP-MM",
"ontocat":"KenntnisseSAPMM"
},
{
"name":"SAP",
"ontocat":"SAP"
},
{
"name":"SAP",
"ontocat":"SAP"
}
]
所以你怎么看有很多同名的条目。
我能做些什么才能只剩下一个唯一的条目?
由于更多的原因,请使用Sencha商店。上面的对象被添加到JSON中。也许有一种更容易的方法来隔离这些值。
谢谢你,如果你需要更多的细节,请询问。
发布于 2014-01-23 01:09:25
我编写了一个带有适合您的场景的removeDuplicates函数的快速Sencha Touch控制器,下面是代码:
Ext.define('MyApp.controller.Main', {
extend: 'Ext.app.Controller',
init: function(application) {
console.log('INIT MAIN');
var json = '[{"name":"SAP R3 Vertriebskenntnisse","ontocat":"SAP_R3_Vertrieb"},{"name":"Kenntnisse SAP-ISU","ontocat":"KenntnisseSAPISU"},{"name":"Microsoft Office","ontocat":"MicrosoftOffice"},{"name":"SAP","ontocat":"SAP"},{"name":"SAP R3 Vertriebskenntnisse","ontocat":"SAP_R3_Vertrieb"},{"name":"SAP","ontocat":"SAP"},{"name":"SAP","ontocat":"SAP"},{"name":"Kenntnisse SAP-MM","ontocat":"KenntnisseSAPMM"},{"name":"SAP","ontocat":"SAP"},{"name":"SAP","ontocat":"SAP"}]',
arr = Ext.JSON.decode(json),
output;
output = this.removeDuplicates(arr);
console.log(output);
},
removeDuplicates: function(arr) {
var nameList = [],
output = [];
for (var i = 0; i < arr.length; i++) {
//check if the nameList array has an instance of the name
if (nameList.indexOf(arr[i].name) === -1) {
//push a reference of the name to the temporary nameList array
nameList.push(arr[i].name);
//push the object to the output array
output.push(arr[i]);
}
};
return output;
}
});
https://stackoverflow.com/questions/21296455
复制相似问题