arrays - 從dojo/store獲取一列不同的值



json (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;
}

我的情景:

這是我的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的解決方案。

謝謝。





dojo