我想从我的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存储中。也许有一种更容易的方法来隔离价值观。
提前致谢,请询问您是否需要更多详情。
答案 0 :(得分:0)
我用一个适合你场景的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;
}
});