我的场景:

这是我的 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/

10-13 02:33