从 dojo/store 获取列的不同值的数组
Posted
技术标签:
【中文标题】从 dojo/store 获取列的不同值的数组【英文标题】:Get an array of distinct values for a column from dojo/store 【发布时间】:2014-06-02 15:09:50 【问题描述】:我的场景:
这是我的 JSON Array 格式的测试数据:
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 Array testDataObj 来获得结果,但我正在探索使用 dojo/store 的 API 的更优雅的解决方案。
我在这里使用 dojo/store/Memory,但我也可以接受其他类型的 dojo/store 的解决方案。
谢谢。
【问题讨论】:
1.我们需要查看您当前使用的代码; 2. 如果您没有自己尝试过,我们不会为您编写代码。 我当前的解决方法是遍历 JSON 数组 testDataObj 以获取不同值的数组。我在 Dojo 中寻找一个更优雅或内置的 api 来完成这项工作。我找了2天,没找到。 【参考方案1】:没有用于从内存存储中获取不同值的内置 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;
【讨论】:
谢谢@frank,我写了一个js函数来获取不同的值,但我认为你的函数更短。我会试试看。以上是关于从 dojo/store 获取列的不同值的数组的主要内容,如果未能解决你的问题,请参考以下文章