我的场景:
这是我的 JSON 数组格式的测试数据:
var testDataObj = [
{ col1: 'p0', col2: 1, tbl: 'p', col3: '14/01/2013', col4:'BOB'},
{ col1: 'p1', col2: 2, tbl: 'p', col3: '14/01/2013', col4:'SANDY'},
{ col1: 'p2', col2: 3, tbl: 'p', col3: '14/01/2013', col4:'JASON'},
{ col1: 'p3', col2: 4, tbl: 'p', col3: '14/01/2013', col4:'JASON'},
{ col1: 'p4', col2: 5, tbl: 'p', col3: '14/01/2013', col4:'SANDY'},
];
我创建了一个 dojo/store/Memory 对象,如下所示:
require(["dojo/store/Memory"], function(Memory){
var gctsTestStore = new Memory({data: testDataObj});
});
我想要实现的目标:
我想获得列
col4
的不同值的数组:var distinctColumnValues=gctsTestStore.getDistinctValuesFromColumnName('col4');
//distinctColumnValues= ['BOB','SANDY','JASON']
我的请求:
目前,我正在遍历 JSON 数组 testDataObj 以实现结果,但我正在探索使用 dojo/store 的 API 的更优雅的解决方案。
我在这里使用 dojo/store/Memory 但我也可以接受其他类型的 dojo/store 的解决方案。
谢谢。
最佳答案
没有用于从 Memory Store 获取 Distinct 值的内置 API。
您需要在 Javascript 中编写自己的方法以获得不同的。下面是一种写法。
var unique = {};
var distinct = [];
for( var i in array ){
if( typeof(unique[array[i].col4]) == "undefined"){
distinct.push(array[i].col4);
}
unique[array[i].col4] = 0;
}
关于arrays - 从 dojo/store 获取列的不同值数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23997771/