从 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 获取列的不同值的数组的主要内容,如果未能解决你的问题,请参考以下文章

如何创建多个从同一个数组中获取值的动态下拉列表,而无需更改 Javascript 中的其他下拉列表

如何从二维数组中获取第一列的内容

从 NSDictionary 数组中获取具有值的数组

单个查询从具有不同列的多个表中获取记录

如何从二维 java 数组中获取一列?

从 Pandas 的索引中检索列的名称