1、js 中 let a = linq.from(Datas).groupBy(({ DeclineType }) => DeclineType) groupby分組之後是什麼數據集合,爲什麼在a變量中看不到數據呢?
groupBy
方法會將數據集合按照指定條件進行分組,返回一個鍵值對的集合。其中,鍵爲分組的條件值,值爲符合該條件值的數據集合。
對於給定的代碼,a
變量中存儲的是按DeclineType
屬性進行分組後的數據集合,但並不是實際的數據集合,而是一個Grouping
對象的集合。
因此,直接在a
變量中查看不到數據,需要通過迭代器等方式遍歷Grouping
對象來獲取分組後的數據。
2、那怎麼遍歷變量a呢
可以使用forEach
方法或者for...of
循環來遍歷Grouping
對象的集合,進而獲取分組後的數據。 使用forEach
方法:
a.forEach(group => { console.log(group.key()); // 輸出分組條件的值 console.log(group.toArray()); // 輸出符合該條件的數據集合 });
使用for...of
循環:
for (let group of a) { console.log(group.key()); // 輸出分組條件的值 console.log(group.toArray()); // 輸出符合該條件的數據集合 }
其中,Grouping
對象提供了key
方法來獲取該分組的條件值,toArray
方法來獲取符合該條件的數據集合。
需要注意的是,Grouping
對象本身並不是數組,因此需要通過toArray
方法將其轉換爲數組後再進行操作。