1.最近写一个报表功能,sql返回的数据是这样的
{date:“2019-01-05”,model:TaxeDetailModel };
{date:“2019-01-05”,model:TaxeDetailModel};
{date:“2019-01-05”,model:TaxeDetailModel};
{date:“2019-01-04”,model:TaxeDetailModel};
{date:“2019-01-04”,model:TaxeDetailModel};
前端需要的是{date:“2019-01-05”,list:};{date:“2019-01-04”,list:}这样的数据,就是把日期相同的合并用来展示,下面是去重合并的方法
dupRem(list: Array<{ date: string, taxModel: TaxeDetailModel }>): Array<{ date: string, taxModelList: Array<TaxeDetailModel> }> {
let map = {};
let need = new Array<{ date: string, taxModelList: Array<TaxeDetailModel> }>();
for (let i = 0; i < list.length; i++) {
let ai = list[i];
if (!map[ai.date]) {
need.push({
date: ai.date,
taxModelList: [ai.taxModel]
});
map[ai.date] = ai;
} else {
for (let i = 0; i < need.length; i++) {
var dd = need[i];
if (dd.date == ai.date) {
dd.taxModelList.push(ai.taxModel);
break;
return need;
1、Array.filter() + indexOf —>耗时 10926
方法思路:将两个数组拼接为一个数组,然后使用 ES6 中的 Array.filter() 遍历数组,并结合 indexOf 来排除重复项。
function distinct(a, b) {
let arr = a.concat(b);
return arr.filter((item, index)=> {
return arr.indexOf(item) === index
用typescript写的简单的去重方法
关联查询经常用到left join,就会有重复的左表的数据产生,在service里面处理去重,只拿一条即可,先把所有的数据都push到一个数组,再对这个数组进行去重(按照不变的字段,如id)
//An highlighted block
uniq(array: Array<TaxeDetailModel>): Array<TaxeDeta...